문제 https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 풀이 못풀겠어서 다른 분들의 풀이를 참고하였음. 처음에는 규칙을 찾으려고 했었지만, 각 열 별로 짝수의 라인이 있고 그 안에도 짝수 개의 라인이 있다면 가능하지않을까싶었는데 힘들었음. 그래서 다른 분들의 풀이와 동일하게 모든 경우를 다 따져보기로했음. 우선, solution함수 안에서 가장 처음에 check라는 함수를 실행해서 사다리를 전부 돌렸을 때 자신의 위치로 오는지 확인함. 세로 줄..
문제 https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 풀이 오래걸렸음. 일단 문제를 제대로 안읽음. 윗줄만 읽고 r, c, m, d, s로 값이 주어지는 줄 알았는데 입력 부분을 보니까 s랑 d랑 바뀌여있었음. 내탓임. 아무튼, 명령이 실행될때마다 가장 먼저 파이어볼들의 위치를 이동시켜주었음. (x,y,m,s,d)로 주어지므로, 새로운 x는 ball[0]에 d와 s를 곱한 값을 더해주었음. y도 마찬가지로..
문제 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로 바꾸..
문제 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를..
- Total
- Today
- Yesterday