백준/문제집(유기) 10

백준 문제집 풀이 10 - 백트래킹

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7315 모든 문제를 풀고 필요할 경우 코멘트를 작성합니다 15649번 : N과 M (1) → 9663번 : N-Queen → 1182번 : 부분수열의 합 → 15650번 : N과 M (2) → 15651번 : N과 M (3) → 15652번 : N과 M (4) → 15654번 : N과 M (5) → 15655번 : N과 M (6) → 15656번 : N과 M (7) → 15657번 : N과 M (8) → 15663번 : N과 M (9) → 15664번 : N과 M (10) → 15665번 : N과 M (11) → 15666번 : N과 M (12) → 6..

백준 문제집 풀이 9 - 재귀

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7314 문제집: 0x0B강 - 재귀 (BaaaaaaaaaaarkingDog) www.acmicpc.net 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 여기서 말하는 재귀는 '분할 정복' 알고리즘을 포함한다. 재귀와 분할 정복은 어떻게 분할할 지, 재귀의 끝(base case)에서 무엇을 하는지 2가지만 신경써주면 된다. 이 두 가지만 논리적으로 설정하면 속는 셈 치고 실행해보자. 답이 잘 나온다. 1629번 : 곱셈 → 사실 이 문제는 주로 반복문으로 구현한다. 구현보다 논리 자체를 알아두자. '분할 정복을 이용한 거듭제곱'에 대해 자세히 설명해주..

백준 문제집 풀이 8 - BFS

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7313 문제집: 0x09강 - BFS (BaaaaaaaaaaarkingDog) www.acmicpc.net 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 1926번 : 그림 → 자주 쓰는 변수명을 통일하자. Q, 현재 위치 cr, cc, 새위치 nr, nc. 일반적으로 그래프의 크기는 DFS로 계산하는데, 배열을 순회하면서 확인할 경우 BFS로도 계산 가능하다. 2178번 : 미로 탐색 → 0과 1만 저장하는 visited 대신 거리를 저장하는 dist 배열을 사용한다. 75..

백준 문제집 풀이 7 - 스택의 활용

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7312 문제집: 0x08강 - 스택의 활용(수식의 괄호 쌍) (BaaaaaaaaaaarkingDog) www.acmicpc.net 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 괄호식 계산의 알고리즘은 다음과 같다. - 여는 괄호 (가 입력될 경우, 스택에 여는 괄호를 push한다. - 닫는 괄호 )가 입력될 경우, 스택에서 여는 괄호를 pop한다. 스택에 여는 괄호가 없으면 유효하지 않은 괄호식이다. - 마지막까지 확인했을 때 스택에 여는 괄호가 남아있으면 유효하지 않은 괄..

백준 문제집 풀이 6 - 덱

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7311 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 10866번 : 덱 → deque STL을 이용한다. map로 명령을 매핑하면 코드가 간결해진다. 1021번 : 회전하는 큐 → 문제에서 '뽑아낸다'라는 표현은 1번 연산의 '첫 번째 원소를 뽑아낸다', 즉 D.front() 에 해당한다. 즉 덱을 적당히 회전시켜, 두 번째 줄에 있는 각 위치의 원소를 D.front()에 보내면 된다. 원소의 위치라고 해서 복잡하게 생각하지 말고 1부터 N까지 값을 덱에 집어넣고 이를 위치..

백준 문제집 풀이 5 - 큐

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7310 문제집: 0x06강 - 큐 (BaaaaaaaaaaarkingDog) www.acmicpc.net 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 10845 번 : 큐 → queue STL을 사용, 명령을 미리 map로 매핑하고 switch문을 사용하면 코드가 간결해짐 18258번 : 큐 2 → 코멘트 없음 2164번 : 카드2 → 버리기는 pop, 옮기기는 push(top), pop으로 나타낼 수 있다. 푼 문제 : 3/3 총 소요 시간 : 10분 문제 수가 왜 이리 적..

백준 문제집 풀이 4 - 스택

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7309 문제집: 0x05강 - 스택 (BaaaaaaaaaaarkingDog) www.acmicpc.net 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 10828번 : 스택 → stack STL 사용. 명령 분기를 단순화하고 싶으면 map과 switch를 사용하자. 10773번 : 제로 → 코멘트 없음 1874번 : 스택 수열 → 오름차순으로 push한다는 걸 이용한다. 스택 수열 풀이 더보기 다음에 push할 수를 nxt, 이번에 입력받은 수를 num이라고 하자. nxt 는..

백준 문제집 풀이 3 - 연결 리스트

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7308 문제집: 0x04강 - 연결 리스트 (BaaaaaaaaaaarkingDog) www.acmicpc.net 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 이 문제집의 3문제를 풀기 위해서는 C++ STL의 list 컨테이너를 이해하는 게 좋다. list의 구조는 대충 다음과 같다. list에서 수행할 수 있는 기본 연산인 원소 이동, 값 참조, insert, erase에 대해 대충 알아보자. >> 원소(그림에서 동그라미) 이동은 반복자 (그림에서 빨간 삼각형) 에 대한 ..

백준 문제집 풀이 2 - 배열

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 링크 : https://www.acmicpc.net/workbook/view/7307 문제집: 0x03강 - 배열 (BaaaaaaaaaaarkingDog) www.acmicpc.net 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 10808번 : 알파벳 개수 → 'a'는 97, 소문자별 사용 개수 계산은 for(char c : str) alpha[c - 97]++; 2577번 : 숫자의 개수 → 숫자별 사용 개수 계산은 while(num) digit[num%10]++; num/=10; 1475번 : 방 번호 → 숫자별 사용 개수, 9는 6에 카운트하고 ..

백준 문제집 풀이 1 - 기초 코드 작성 요령 II

백준 BaaaaaaaaaaarkingDog님이 제작하신 문제집을 사용합니다 https://www.acmicpc.net/workbook/view/7306 문제집: 0x02강 - 기초 코드 작성 요령 II (BaaaaaaaaaaarkingDog) www.acmicpc.net 무너져버린 코테 기초를 다시 쌓기 위해 유형별로 문제를 쭉쭉 밀기로 했다. 모든 문제를 풀고 필요할 경우 코멘트를 작성한다. 10871번 : X보다 작은 수 → 코멘트 없음 1000번 : A + B → 코멘트 없음 2557번 : Hello World → 코멘트 없음 10171번 : 고양이 → \\ /\\\n ) ( ')\n( / )\n \\(__)|\n 10869번 : 사칙연산 → 코없 9498번 : 시험성적 → score/10으로 sw..