목록분류 전체보기 (370)
GitHubSeob

문제 https://www.acmicpc.net/problem/1245 1245번: 농장 관리 첫째 줄에 정수 N(1 < N ≤ 100), M(1 < M ≤ 70)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄마다 격자의 높이를 의미하는 M개의 정수가 입력된다. 격자의 높이는 500보다 작거나 같은 음이 아닌 정수 www.acmicpc.net 문제풀이 문제를 제대로 안 봐서 조금 헤맸다. 인접한 격자는 상, 하, 좌, 우의 네 방향이 아닌 대각선까지 포함하여 총 여덟 방향이다. 그리고 산봉우리는 하나의 칸일 수도 있고 여러 칸일 수도 있다. 산봉우리 격자들은 모두 같은 높이여야 하고, 그 외의 칸들은 산봉우리의 높이보다 작아야 한다. 우선순위 큐를 이용해 높이 기준으로 내림차순 하게끔 cmp함수를 작..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 다른 방법으로 풀어야 하나 했는데 나온 그대로 코드를 작성하면 된다. 문제 잘 이해가 안 돼서 풀이를 참조했다. 입력이 빈 문제일 때까지 계속 재귀를 해야 한다. 코드를 더 세분화할 수 있긴 한데 크게 두 가지로 나누었다. 첫 번째는 isCorrect함수로 해당 문자열이 올바른 문자열인지를 판별하여 bool형을 return 하는 함수이다. bool isCorrect(string s)..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 백준의 회의실 배정, 강의실 배정과 비슷한 문제이다. 정렬 + 우선순위 큐를 이용하여 풀었다. 먼저 문제에서 주어진 시각은 string형 이므로 int형으로 바꿔 시각을 분으로 모두 바꾼다. 퇴실을 하면 해당 방은 10분간 청소 시간이 필요하므로 분으로 바꿀 때 퇴실 시각에만 10분씩 더해준다. 변환이 모두 끝났으면 정렬을 통해 시작 시각을 기준으로 오름차순 정렬을 한다. 그다음 ..

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

문제 https://www.acmicpc.net/problem/5464 5464번: 주차장 시내 주차장은 1부터 N까지 번호가 매겨진 N개의 주차 공간을 가지고 있다. 이 주차장은 매일 아침 모든 주차 공간이 비어 있는 상태에서 영업을 시작하며, 하룻동안 다음과 같은 방식으로 운영 www.acmicpc.net 문제풀이 우선순위 큐, 큐를 이용하여 풀었다. 생각보다 고려해야 될 것이 있던 문제였다. 주차장 자리가 없을 때 차량이 들어오는 것도 고려해야 하고, 주차장 자리가 여러 개일 때도 고려해야 했다. 우선순위 큐 remain은 남은 주차장을 나타낸다. 남은 주차장은 번호가 작은 주차장이 우선순위큐의 top부분에 오게 된다. ({번호, 요금}) 큐 waiting은 남은 주차장이 없어 대기를 하고 있는 차..

문제 https://www.acmicpc.net/problem/13422 13422번: 도둑 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 마 www.acmicpc.net 문제풀이 누적합, 슬라이딩 윈도우 문제이다. 집을 고를 때는 항상 연속된 위치에 있는 집만 고를 수 있다. 붙어있는 m개 만큼의 집을 고르고 돈의 총합을 구해 K보다 작으면 개수를 하나 늘려주면 된다. for (int idx = 0; idx < M; ++idx) sum += money[idx]; if (sum < K) ++answer; for (int idx = 1; idx < N; ++idx) {..

문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 문제풀이 톱니바퀴가 회전할 때는 처음 입력받은 톱니바퀴는 반드시 회전한다. 그다음 인접한 톱니바퀴는 회전하고 난 후가 아닌 회전하기 전의 기준 톱니바퀴와의 조건을 따져야 한다. prev_gear와 gear를 따로 두어 조건을 따지는 톱니바퀴는 prev_gear를 이용하고, 회전을 할 때는 gear의 톱니바퀴를 회전하였다. 왼쪽 톱니바퀴의 [2]와 오른쪽 톱니바퀴의 [6]의 극을 따져야 ..

문제 https://www.acmicpc.net/problem/10025 10025번: 게으른 백곰 첫 줄에 정수 N과 K가 들어온다. 둘째 줄부터 N째 줄까지, 공백을 사이에 두고 각 양동이의 얼음의 양을 나타내는 gi와 양동이의 좌표를 나타내는 xi가 주어진다. www.acmicpc.net 문제풀이 처음에는 이중 반복문으로 풀었는데 시간 초과가 나서 투 포인터를 이용해 풀었다. pair를 이용해 벡터에 앞부분에는 좌표, 뒷부분에는 얼음양을 입력받는다. 백곰은 한번 정한 자리에서 -K ~ +K 부분까지만 이동할 수 있다. 입력은 좌표순이 아니므로 sort함수를 이용해 좌표를 오름차순으로 정렬한다. 먼저 left, right를 0으로 정한 뒤 left, right를 움직이며 범위를 정한다. 만약 left..

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