문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 풀이 구현만 하면 되는 문제였음. 아예 왼쪽으로 돌리는 함수, 오른쪽으로 돌리는 함수, 톱니바퀴가 돌아가면 같이 돌아가는 톱니바퀴를 반환하는 함수, 톱니바퀴가 돌아갈때 돌아갈 방향을 반환하는 함수를 전부 구현하였다. Swift import Foundation //var input: [[String]] = [] //for _ in 0.. [Int] { if first == 1 { //두번째..
문제 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 풀이 미리 이차원배열을 전부 0으로 초기화하고 입력받은 쓰레기 위치를 1로 바꿔준 뒤, BFS를 이용해 가장 많은 쓰레기가 붙어있는 영역을 구해주면됨. Swift import Foundation let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0];..
문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 스위프트로 풀었던 문제였지만 파이썬에 조금 익숙해지기 위해서 다시 풀어봄. 쉬운 BFS문제였음. 한 칸씩 확인해주면서 단지가 나오면 해당 단지안에 1이 몇개인지 확인하고 총 단지가 몇개인지 확인해서 출력하기만 하면됨. n = int(input()) board = [] count = 0 result = [] dx = [1,0,-1,0]; dy = [0,1,0,-1] visited = [[F..
문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 풀이 스위프트로는 어렵지 않게 풀었는데, 파이썬으로는 도저히 혼자 할 수가 없어서 참고하면서 풀었음. Swift import Foundation let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0]; let m = input[1]; let v = inp..
문제 https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가하는 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 www.acmicpc.net 풀이 result[k] 는 numbers의 k번째 원소까지 증가하는 부분수열의 합을 나타냄. 즉, numbers[j]가 numbers[i]보다 작다는 것은 result[j]에 numbers[i]를 더할 수 있다는 얘기임. 이렇게 구하며 max값으로 result[i]로 바꿔주면 가장 큰 값으로 result[i]의 값이 정해짐. 마지막..
- Total
- Today
- Yesterday