본문 바로가기

반응형

백준

(329)
[BOJ] 백준 2557 Hello World (Swift) 문제 https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 풀이 입력도 없고, 단순하게 "Hello World!"를 출력하는 문제소스코드 소스코드 후기 그냥 print() 문법을 사용해 출력만 해주는 기본 출력 문제
[BOJ] 백준 2036 수열의 점수 (Swift) 문제 https://www.acmicpc.net/problem/2036 2036번: 수열의 점수 n개의 정수로 이루어진 수열이 있다. 이 수열에서 한 정수를 제거하거나, 또는 두 정수를 제거할 수 있다. 한 정수를 제거하는 경우에는 그 정수가 점수가 되고, 두 정수를 제거하는 경우에는 두 www.acmicpc.net 풀이 1보다 큰 양수는 큰 양수끼리 곱하는 것이 가장 큰 값이 나올 것이다. 1은 더하는게 가장 큰 값이다. 1과 다른 수를 뽑아서 곱해봤자, (1 * x) = x 이기 때문 음수는 가장 작은 음수끼리 곱하는 것이 가장 큰 값이 나올 것임 0은 음수가 남았을 때, 음수랑 곱해주면 0으로 가장 큰 값이 나오게 될 것이다. 그 외에는 있으나 마나..? 그러므로 배열을 입력받고, 1보다큰 양수, ..
[BOJ] 백준 5545 최고의 피자 (Swift) 문제 https://www.acmicpc.net/problem/5545 5545번: 최고의 피자 상근이는 근처 피자 가게에서 매일 저녁으로 피자를 배달해 먹는다. 주머니 사정이 얇아진 상근이는 이번 달부터는 "최고의 피자"를 구매하려고 한다. 최고의 피자란, 피자 가게에서 주문할 수 www.acmicpc.net 풀이 1원 당 열량이 가장 큰 피자가 최고의 피자이고 최고의 피자의 1원 당 열량을 구하는 문제 입력받은 토핑을 가장 큰 열량별로 정렬을 해주고, 1원 당 열량을 계산하는 방식으로 풀이할 수 있겠다고 생각이 듬 1원 당 열량을 계산하고, 다음 토핑을 추가했을 때, 1원 당 열량이 현재보다 크다면 토핑을 추가하고 아니라면 더 이상 토핑을 추가하지 않으면 될 것이다 라고 생각함 소스코드 후기 소스코드..
[BOJ] 백준 11725 트리의 부모 찾기 (Swift) 문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 먼저 트리를 그려보았음 루트노드가 1로 고정되어 있어서 BFS/DFS를 1에서 한번만 수행시키면 되겠다고 생각했음 간선의 개수는 노드의 개수 - 1개 이므로, 무조건 모든 노드가 연결되어 있을 것이라고 생각했음 부모의 노드를 알기 위해서는 현재노드 -> 다음노드 로 탐색할 때, 현재노드의 번호를 어딘가에 담아둬야 될 것이라고 생각했음 visited 배열을 [Bool] 자료형으로 선언해서 사용했었는데, [Int]로 선언에서 그곳에 담아두어서 해결할 수..
[BOJ] 백준 11724 연결 요소의 개수 (Swift) 문제 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 풀이 먼저 예제입력 1에 있는 그래프를 그려보았다. 방문하지 않은 모든 노드에대해 BFS/DFS를 수행하면서 총 몇번 수행되는지 확인하면 연결 요소의 개수를 확인할 수 있겠다고 생각했다. [1]번 노드에대해 BFS/DFS 수행시 [2, 5] 노드를 방문하기 때문에 2번 노드는 건너뛰고 3번 노드에 대해 BFS/DFS 수행.. [3..
[BOJ] 백준 4963 섬의 개수 (Swift) 문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 딱 보자마자 길찾기 문제다! 라고 생각했음 동, 남, 서, 북, 대각선(4방향)을 고려해야겠다고 생각함 DFS/BFS 둘 다로 풀이할 수 있을 것 같다고 느낌 소스코드 후기 많은 그래프 문제들과 같이 연결 요소의 갯수를 구하는 문제라고 생각한다. 다만 방향이 8가지란 점에서 dx, dy를 8개로 정의를 해줘야 했던 문제였다. 그 외에는 기본적인 BFS/DFS 문제였다고 생각한다.
[BOJ] 백준 2644 촌수계산 (Swift) 문제 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 풀이 예제입력 1를 트리로 그려보았음 7 -> 3의 촌수는 3임, (3만큼의 거리로 해석하였습니다) 촌수를 계산해야 하는 번호 중 앞번호를 Start, 도착 번호를 End로 두고, DFS/BFS를 Start 번호부터 시작 한 후, 도착 번호를 만난다면 그때의 Depth를 출력해주면 되겠다고 생각했다. 만약 도달할 수 없다면 -1 을 출력해주자! 소스코드 후기 그래프의 간선..
[BOJ] 백준 1012 유기농 배추 (Swift) 문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 DFS, BFS로 풀이하면 되겠다고 바로 생각이 들었다! 2차원 배열 그래프를 전부 순회하면서, 그래프의 값이 1일 때, DFS 혹은 BFS를 돌리고 총 몇번 돌리는지 갯수를 세면 되겠다고 생각했다. 그래프의 범위를 넘는지 여부를 알 수 있는 isVaildCoordinate(x:y:) 라는 함수를 만들어주었음! 그래프의 범위를 넘지 않고, 방문하지 않았으며, 이동할 좌표의 값이 1이라면 방문하는 길..

반응형