Algorithm (129) 썸네일형 리스트형 소용돌이 예쁘게 출력하기 (1022번) - 백준 (BOJ) https://www.acmicpc.net/problem/1022 1022번: 소용돌이 예쁘게 출력하기 첫째 줄에 네 정수 r1, c1, r2, c2가 주어진다. www.acmicpc.net 백준 - 소용돌이 예쁘게 출력하기 (1022번) 난이도 : Gold 3 알고리즘&자료구조 : Simulation & Implementation (구현) 시간복잡도 (Time Complexity) : O( (r2-r1+1) * (c2-c1+1) ) ★ 핵심 Idea ★ ◎ 각 정사각형의 왼쪽 아래 꼭지점은, [(2 * 해당 좌표) + 1] ^ 2 가 된다. ex) (3, 3) 좌표 → [(2 * 3) + 1] ^ 2 = 7 ^ 2 = 49 현재 좌표가 어느 정사각형에 속해있는지, 행과 열 값중 더 큰 값을 통해 확인하.. 용이 산다 (3430번) - 백준 (BOJ) https://www.acmicpc.net/problem/3430 3430번: 용이 산다 옛날 아주 먼 옛날, 한 마을에 용이 살고 있었습니다. 그 마을에는 호수가 여러개 있었는데, 그 호수들은 모두 물이 들어 있었습니다. 이 마을에는 가끔 비가 내립니다. 신기하게도 비는 한 호수 www.acmicpc.net 백준 - 용이 산다 (Enter The Dragon) (3430번) 난이도 : Gold 1 알고리즘&자료구조 : 우선순위 큐 (Priority Queue) & 그리디 (Greedy) 시간복잡도 (Time Complexity) : O( nlogn ) ★ 핵심 Idea ★ ◎ 특정 호수 "x"에 시간 "t" 에서 비가 내렸다고 하면, "t" 시점 전의 비가 오지 않은 날에는, "t"에서 내린 비를 먹을.. 문자판 (2186번) - 백준 (BOJ) https://www.acmicpc.net/problem/2186 2186번: 문자판 첫째 줄에 N(1 ≤ N ≤ 100), M(1 ≤ M ≤ 100), K(1 ≤ K ≤ 5)가 주어진다. 다음 N개의 줄에는 M개의 알파벳 대문자가 주어지는데, 이는 N×M 크기의 문자판을 나타낸다. 다음 줄에는 1자 이상 80자 이하의 www.acmicpc.net 백준 - 문자판 (2186번) 난이도 : Gold 3 알고리즘&자료구조 : Dynamic Programming (동적계획법) 시간복잡도 (Time Complexity) : O( N * M * K * len(영단어) ) ★ 핵심 Idea ★ ◎ 주어진 영단어의 철자를 앞에서부터 하나씩 확인하면서, 현재 철자가 위치하는 각 좌표의 경우의 수를 기록해나간다. < 전.. 비드맨 (19590번) - 백준 (BOJ) https://www.acmicpc.net/problem/19590 19590번: 비드맨 구슬을 엄청 좋아하는 비드맨이 있다. 구슬만 보면 갖고 싶어 하는 비드맨은 오늘도 갖고 싶은 구슬을 발견했다. 그러나 비드맨은 현재 구슬을 너무 많이 갖고 있기 때문에 더 이상 구슬을 가질 www.acmicpc.net 백준 - 비드맨 (19590번) 난이도 : Gold 1 알고리즘&자료구조 : Greedy (그리디) 시간복잡도 (Time Complexity) : O(N) ★ 핵심 Idea ★ ◎ 크게 아래의 두 가지 경우로 나눌 수 있다. 1. 각 종류 별 구슬 갯수의 최댓값이, 나머지 구슬 갯수들의 합보다 크다면 [최댓값 - (나머지들의 합)] 이 최소로 남는 구슬 갯수가 된다. 2. 위의 1에 해당하지 않는다면,.. 벽 부수고 이동하기 4 (16946번) - 백준 (BOJ) https://www.acmicpc.net/problem/16946 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 www.acmicpc.net 백준 - 벽 부수고 이동하기 4 (16946번) 난이도 : Gold 2 알고리즘&자료구조 : DFS (깊이우선탐색) ★ 핵심 Idea ★ ◎ 벽이 아닌 빈 곳들을 그룹화하고, 각 그룹의 칸 수를 기록한다. 이후 각 벽을 기준으로 상하좌우 빈 칸의 그룹들을 확인하고, 서로 다른 그룹들의 칸 수를 모두 더하고 마지막에 1을 더해주면, 해당 벽을 부쉈을 때 이동할 수 있는 칸의 수.. 트리의 높이와 너비 (2250번) - 백준 (BOJ) https://www.acmicpc.net/problem/2250 2250번: 트리의 높이와 너비 첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다. www.acmicpc.net 백준 - 트리의 높이와 너비 (2250번) 난이도 : Gold 2 알고리즘&자료구조 : DFS (깊이우선탐색) ★ 핵심 Idea ★ ◎ 루트 노드를 기준으로, 트리의 각 깊이 별 노드의 최소 최대 위치를 DFS로 구한다. import sys input = sys.stdin.readline class Tree(): def __init__(self, N): self.. 구두 수선공 (14908번) - 백준 (BOJ) https://www.acmicpc.net/problem/14908 14908번: 구두 수선공 최소 보상금을 지불하는 작업 순서를 출력해야 한다. 모든 작업은 입력에서의 번호(1~N)로 표시해야 한다. 모든 정수는 한 줄로 표시해야 하며, 각 작업은 공백 문자로 구분한다. 여러 가지 해답 www.acmicpc.net 백준 - 구두 수선공 (14908번) 난이도 : Gold 1 알고리즘&자료구조 : 그리디 (Greedy) & 정렬 (Sorting) 시간복잡도 (Time Complexity) : O( N logN ) ★ 핵심 Idea ★ ◎ 보상금 S가 작업 소요 일수 T에 비해 클수록 먼저 수선해야 한다. (Greedy) [(2, 2), (3, 4)] 두 개의 수선할 구두가 있다고 하면, 아래와 같이 (3.. 돌 그룹 (12886번) - 백준 (BOJ) https://www.acmicpc.net/problem/12886 12886번: 돌 그룹 오늘 강호는 돌을 이용해 재미있는 게임을 하려고 한다. 먼저, 돌은 세 개의 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다. 강호는 모든 그룹에 있는 돌의 개수를 같게 만들려 www.acmicpc.net 백준 - 돌 그룹 (12886번) 난이도 : Gold 4 알고리즘&자료구조 : BFS (너비 우선 탐색) ★ 핵심 Idea ★ ◎ 주어진 초기 숫자 3개로 시작해서, 3개의 수가 모두 같아질 때까지 BFS를 활용해 연산을 진행해본다. class Rocks(): def __init__(self, A, B, C): self.is_eq = 0 if A==B==C: self.is_.. 이전 1 2 3 4 5 ··· 17 다음