본문 바로가기
반응형

백준4

[BOJ 5904] Moo 게임 (C++) www.acmicpc.net/problem/5904 5904번: Moo 게임 Moo는 술자리에서 즐겁게 할 수 있는 게임이다. 이 게임은 Moo수열을 각 사람이 하나씩 순서대로 외치면 되는 게임이다. Moo 수열은 길이가 무한대이며, 다음과 같이 생겼다. m o o m o o o m o o m o o o www.acmicpc.net 구현 방법 처음에 이 문제를 봤을 때, 재귀를 통해 moo수열 문자열을 만들어서, 입력한 n 번째의 알파벳을 출력하면 되는 줄 알았습니다. 재귀를 통해 Moo 수열을 구현하는 코드를 성공적으로 짜고 기뻐하면서 제출했을때, 결과는 메모리 초과였습니다. 생각해보니 입력 n은 최대 1억 까지 가능한데, 길이가 1억인 수열을 구하려면 재귀를 너무 많이 돌아야 돼서 메모리 초과가 날 .. 2021. 4. 30.
[BOJ 7562] 나이트의 이동 (C++) www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 구현 방법 이 문제의 분류는 BFS입니다. BFS문제는 보통 상, 하, 좌, 우로 움직이는데, 이 문제는 나이트의 이동 방식으로 8가지 방법을 확인해야 합니다. 로직 자체는 BFS와 동일하지만, 이동 방향을 8가지로 한다는 차이점 뿐입니다. 보통의 BFS는 이동을 위해 다음과 같은 배열을 선언합니다. int dx[4] = {1, 0, -1, 0} int dy[4] = {0, 1, 0, -1} 하지만 나이트의 이동.. 2021. 4. 9.
[BOJ 6198] 옥상 정원 꾸미기 (C++) www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net 구현 방법 이 문제는 스택을 활용해야 하는 문제입니다. 1. 첫 번째 건물은 바로 스택에 넣어줍니다. 2. 두 번째 건물 입력부터 다음 로직을 거쳐 줍니다 i) 스택에 있는 건물들 중에, 현재 건물보다 작은 건물들을 다 빼줍니다. ii) 건물을 다 빼줬으면, 스택에 있는 개수만큼 답에 더해줍니다. iii) 해당 입력을 스택에 넣어줍니다. ※ 주의 할 점 ※ 이 문제의 로직 자체는 간단했습니다. 하지만 저.. 2021. 4. 9.
[BOJ 4179] 불! (C++) www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 구현 방법 이 문제는 BFS(Breadth First Search)를 활용한 문제입니다. 기본적인 BFS문제는 Flood Fill 같이 하나의 탐색점을 두고 풀 수 있는데, 이 문제는 불, 지훈이 각각 두 번의 BFS로직을 구현해야 합니다. BFS, 즉 너비 우선 탐색은 다음과 같은 알고리즘을 따릅니다. 시작하는칸을 큐에 넣고 방문했다는 표시 남김 큐의 front를 꺼내고 해당 원소의 상, 하, .. 2021. 2. 28.
반응형