문제 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 풀이 그대로 구현만 하면 되는 문제였음. dice라는 배열을 이용했는데, [위, 앞, 오, 왼, 뒤, 아]라고 정하고 풀었음. rollDice라는 메서드를 이용해 dice배열의 순서를 바꿔주었음. 이때, 파라미터로 x와 y도 같이 받아서 범위를 벗어나면 건너뛰게 하였음. check라는 변수를 이용하여 이때 값을 True로 바꾸..
문제 푼 것만 기록하니 썼던 문법도 까먹을 때가 있었음. 그래서 기억이 더 잘나도록 간단하게라도 정리하기로함. Deque deque은 양쪽에서 원소를 제거할 수 있음. swift에서는 해당 자료구조가 존재하지 않아서 직접 구현해야했지만, 파이썬에서는 collections에 존재하기때문에 import 후에 사용하면됨. 리스트를 이용해 맨 앞의 원소를 pop(0)으로 제거하면 시간복잡도가 O(n)임. => 스위프트 removeFirst()와 동일 deque을 사용하면 popleft()를 이용해 더 빠르게 처리할 수 있음. [1:] swift에서는 인덱스범위를 ...를 이용해 나타냈었음. -> a[1...2] 하지만 파이썬에서는 :를 이용하면됨. 앞이 비어있다면 맨 처음부터, 뒤가 비어있다면 맨 마지막까지를 ..
문제 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 'ㅜ' 모양을 제외하면 dfs로 풀 수 있다. dfs로 모든 경우를 확인한 뒤에, 'ㅜ, ㅓ,ㅗ,ㅏ'의 좌표만 따로 구해서 결과를 구하였다. import sys input = sys.stdin.readline n,m = map(int,input().split()) paper = [] for _ in range(n): paper.append(list(map(int,input().split..
문제 https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 풀이 구현만 하면 되는 문제였다. 학생별로 모든 칸을 탐색하며 빈 칸인 경우엔 상하좌우 칸을 확인해서 좋아하는 친구의 수, 비어있는 칸 수를 기록하여 (x,y,좋아하는 수, 빈 칸 수)의 형태로 리스트에 담아주었다. 이후에 정렬을 통해 문제의 조건대로 정렬해주었고, 맨 앞의 자리에 학생을 앉게 하였다. 정렬할 때, filter의 형식이 스위프트와 좀 달라서 헷갈렸다. lambda를..
문제 https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 풀이 구현만 하면 되는 문제였다. 다만 시간초과를 해결하느라 오래걸렸다. 문제의 조건 그대로, 구름을 먼저 이동시키고 물을 1씩 추가해줬다. 다음으로 대각선을 확인하여 물복사버그를 실행해주었다. 이후엔 다시 반복문을 통해 한칸씩 확인하며 물의 양이 2보다 많고, 이전에 구름이 아니었는지 확인 후에 temp에 넣어 cloud를 temp로 초기화시켜주었다. 마지막으로 다시 한 칸씩 확인하..
- Total
- Today
- Yesterday