목록Programmers/Level 2 (79)
GitHubSeob
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 소문자를 대문자로 변환해주는 toupper, 대문자를 소문자로 변환해주는 tolower을 사용했다. s[0]은 s[0]을 대문자로, 나머지 인덱스는 for문을 이용한다. s[idx - 1]이 공백이고, s[idx]가 공백이 아니면 s[idx]가 첫 문자이므로 toupper을 하여 대문자로, 그 외의 경우는 tolower을 이용해 소문자로 변환한다. 코드 #include #includ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 문자열을 파싱 하는 istringstream을 이용해 풀었다. istr에서 공백 (' ')을 기준으로 문자열을 잘라 num에 저장한다. min_num에는 최솟값을, max_num에는 최댓값을 저장한다. 문제에 숫자 범위 조건이 안 나와있어 min_num에는 int의 최댓값인 2147483647, max_num에는 최솟값인 -2147483648으로 초기화했다. 마지막으로 answer에..

문제 https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 문제풀이 완전탐색으로 문제를 풀었다. visited벡터를 이용해 idx번째 던전을 방문했는지 판별을 한다. 방문을 하지 않은 던전이라면 해당 던전을 무시하고 다음 던전을 탐색하기 위해 DFS를 실행한다. 또는 해당 던전을 방문할 것이라면 현재 피로도가 던전의 최소 피로도 이상인지 확인을 하고 DFS를 실행한다. 모든 던전을 방문 했다면 answer값..

문제 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 문제풀이 스택의 느낌으로 문제를 풀었다. number의 크기만큼 반복문을 돌면서, 현재 해당하는 숫자를 answer에 더하기 전에 answer의 맨 뒤에 있는 숫자보다 큰 숫자를 만나면 조건을 판단한다. 현재 해당하는 숫자를 포함한 남은 개수가 만들어야 되는 target_size보다 크다면 answer의 끝 숫자를 삭제한다. 그다음 조건에 맞지 않아 반복문이 종료됐으면 현재 숫자를 answer의 끝에 더해준다. 반복문이 종료됐을 때 만약 answer의 크기가 target_size보다 크다면 target_size의 크기가 될 때까지 a..

문제 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 문제풀이 yellow의 약수를 구한다. 각각의 약수에 +2를 더하고 곱한 값이 전체 블록의 수가된다. 이 값이 brown + yellow의 값과 같아지면 된다. 가로가 세로 길이 이상이어야 하고, idx는 1부터 시작하므로 몫을 가로로 둔다. 약수를 구하면서 몫+2, 나눈 수+2의 곱이 총 격자의 수와 같으면 그게 가로, 세로의 길이다. 코드 #incl..

문제 https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 문제풀이 오름차순으로 정렬을 하고 첫 번째 인덱스부터 탐색한다. 새로운 값을 발견했을 경우, 답을 구하지 못한 상태이므로 이전 값들은 무조건 현재 값보다 작다. 따라서 문제의 조건에서 나머지 논문이 h번 이하 인용되었다는 조건은 필요 없어진다. 그러면 남은 조건은 h번 이상 인용된 논문이 h개 이상인 최댓값 h를 구하는 것이..

문제 https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 문제풀이 스택을 이용하여 풀었다. 괄호의 종류가 세 가지나 있다. s의 최대 크기가 많이 안 커 보이므로 회전 대신 s를 덧붙이고 idx만 늘리면서 회전의 역할을 한다. 문자열을 바꿀 때마다 스택을 초기화한다. 여는 괄호가 들어오면 스택에 push 한다. 닫는 괄호가 들어오면 스택이 비었는지, 안 비었는지를 확인한다. 스택이 비어있다면 짝이 맞을 수 없으므로 바로 break를 한다. 스택이 비어있지 않다면 짝이 맞는 괄호인지 판별해야 한다. ')'가 들어오면 '(', '{'가 들어오면 '}', '['가 들어오면 ']'. (아스키코드 ..

문제 https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 문제풀이 A가 B보다 항상 작다는 조건이 없어서 A가 B보다 클 경우 swap을 했다. 대진표에서 A가 번호가 작으므로 B와 붙을 경우 왼쪽에 A 오른쪽에 B가 된다. 따라서 만나는 경우에는 A를 2로 나눈 나머지가 1, A+1은 B인 경우밖에 없다. a, b가 홀수인 경우에는 +1을 하고 2로 나누고, 그 외에는 그냥 2로 나눈다..

문제 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제풀이 DFS, BFS에서 기본적인 문제이다. queueq를 이용하여 q[0]에는 y좌표, q[1]에는 x좌표, q[2]에는 이동한 칸수의 정보를 입력한다. q가 빌 때까지 반복하여 while문을 탈출하면 목표지점에는 닿을 수 없으므로 -1을 return 하면 된다. 현재 y, x좌표에서 상, 하, 좌..