목록Programmers/Level 2 (79)
GitHubSeob

문제 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 DFS+재귀를 이용하여 풀었다. DFS를 통해 트리를 탐색한다. 탐색이 모두 끝나면 재귀를 통해 현재 노드가 새로운 노드의 루트가 된다고 가정한다. 트리에서 현재 노드와 잇는 간선을 끊는다고 생각하면 된다. 그렇게 되면 새로 생긴 트리의 노드 개수는 재귀를 통해 누적된 값들의 합이 된다. 예제 1번이다. 본문의 그림에선 4-7의 간선을 끊었지만, 3-4의 간선을 끊는 것도 답이다. ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 문제가 생각보다 복잡해 보이지만 복잡하게 생각 안 하면 풀만한 문제였다. 재생된 음악에서 m을 찾는 문제이다. 재생된 시간보다 악보다 짧다면 해당 악보를 여러 번 반복했다는 의미이다. 단순히 생각하면 재생된 시간에 맞춰 악보를 여러 번 나열하면 된다. 악보에 사용되는 음중에서 '#'이 붙은 음중 A#, C#, D#, F#, G#, 이렇게 5가지가 있다. 2글자여도 한음이므로 '#'이..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 DFS를 이용하면 쉽게 풀 수 있는 문제이다. 2차원 bool형 벡터 visited를 이용하여 'X'인 곳을 모두 true로 바꾼다. int max_day; void DFS(int y, int x) { for (int idx = 0; idx = N..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 투 포인터를 이용해 문제를 풀었다. sum에 left부터 right까지의 값을 더하면서 값이 k가 될 때 answer에 저장한 값과 비교하면서 값을 갱신한다. sum이 k보다 작을 때는 sequence[right]의 값을 sum에 더하고, sum이 k일 때는 answer에 저장된 부분 수열의 길이보다 현재 길이가 짧을 경우 갱신한다. sum이 k보다 클 때는 sequence[lef..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 큐를 pop 하고 다른 큐로 push 하는 작업을 묶어서 횟수를 센다. 큐 두 개를 붙여 한 벡터처럼 생각하고 투포인터를 이용해서 문제를 풀었다. 투 포인터를 이용해 left, right부분을 설정하고 합을 구하면서 비교한다. 합이 K보다 크면 left부분을 sum에서 빼고, 합이 K보다 작으면 right부분을 sum에 더한다. 이러면서 모든 경우를 탐색한다. 만약 sum이 K와 ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 해당 그림을 2차원 벡터로 표현할 것이다. 벽돌들을 맨 왼쪽으로 모두 당긴 모양을 생각하면 된다. 맨 위 맨 왼쪽 벽돌부터 시작하여 숫자는 아래로, 오른쪽으로, 왼쪽 대각선으로 이동하며 커진다. for (int y = 0; y < N; ++y) { board[y] = vector(y + 1, 0); max_size += y + 1; } 맨 위줄은 y=0, 개수는 1개이다. 그다음 줄..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 재귀를 이용하여 풀었다. 왼쪽 맨 위, 오른쪽 맨 아래 좌표를 구해서 둘의 좌표가 같을 때까지 1/4씩 계속 나눈다. 그다음 왼쪽 맨 위부터 오른쪽 맨 아래까지 모든 칸을 탐색하면서 이전 칸의 값과 같은지를 판별한다. 만약 하나라도 다르면 다시 나눈다. 만약 다 같으면 해당 숫자에 해당하는 answer에 값을 1씩 더한다. 코드 #include #include using namesp..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 테스트케이스 4번 6번만 계속 틀려서 고생 좀 했다. 질문글을 보니 새 트럭이 다리에 들어간 시간이 이미 있던 트럭이 나가는 시간보다 빠르면 안 된다고 적혀있었다. 내 코드와는 관련이 없을 거라 생각하고 그냥 넘겼는데 다른 질문글로는 해결이 안 돼서 다시 보고 조건을 하나 추가했더니 맞혔다. //if (prev_time == time) ++time; 4, 6번 틀림 if (prev_..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 경우의 수를 따져가며 풀어야 되는 문제인지 알고 조건을 여러 개 두어 풀었는데.. 다른 풀이를 보니 스택에 다 집어넣고 pop 하면서 푸는 풀이가 있더라고요.. 저는 제가 푼대로 풀이하겠습니다. 컨베이어 벨트의 맨 앞에 있는 박스를 box_num이라는 변수의 값으로 둔다. 보조 컨테이어 벨트를 나타내는 박스들을 stack을 이용해 표기한다. (스택의 top부분이 보조 컨베이어 벨트..