문제 https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 풀이 구현만 하면 되는 문제였다. 다만 시간초과를 해결하느라 오래걸렸다. 문제의 조건 그대로, 구름을 먼저 이동시키고 물을 1씩 추가해줬다. 다음으로 대각선을 확인하여 물복사버그를 실행해주었다. 이후엔 다시 반복문을 통해 한칸씩 확인하며 물의 양이 2보다 많고, 이전에 구름이 아니었는지 확인 후에 temp에 넣어 cloud를 temp로 초기화시켜주었다. 마지막으로 다시 한 칸씩 확인하..
문제 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..
- Total
- Today
- Yesterday