목록CodingTest/Python (74)
기록방
👉 문제링크 23253번: 자료구조는 정말 최고야 위 그림처럼 책이 쌓여 있으므로, 첫 번째 더미 - 두 번째 더미 - 첫 번째 더미 - 두 번째 더미 순으로 꺼내면 책 번호순으로 나열할 수 있다. www.acmicpc.net 🔸 문제 분석 🔸 여러개의 스택형식 책더미에서 번호 순서대로 책을 뽑을 수 있는지 판별한다. 스택과 책의 개수가 최대 20만이므로 pop을 반복해서 탐색하는건 시간초과가 난다. 각 책 무더기가 내림차순으로 정렬되어 있으면 문제 조건을 만족하므로, 정렬을 확인한다. 🔸 코드 🔸 import sys input = sys.stdin.readline n, m = map(int, input().split()) for _ in range(m): book = int(input()) books ..
👉 문제링크 5426번: 비밀 편지 선영이는 남자친구를 위해 연애 편지를 썼다. 선영이는 편지가 남들에게 읽히는 것을 막기 위해서 편지를 암호화하려고 한다. 먼저, 편지의 내용을 정사각형에 작성한다. 그 다음, 시계방향으로 www.acmicpc.net 🔸 문제 분석 🔸 입력된 문자열을 정사각형 배열에 저장하고 90도 우회전해서 출력한다. 정사각형의 한 변의 길이는 문자열 길이의 제곱근이다. 🔸 코드 🔸 import math n = int(input()) for i in range(n): string = input() size = int(math.sqrt(len(string))) arr = [] for j in range(size): arr.append(string[j*size:j*size+size]) r..
👉 문제링크 5211번: 가단조와 다장조 첫째 줄에 음악이 주어진다. 음악은 {"A", "B", "C", "D", "E", "F", "G", "|"}로 이루어져 있으며, 길이는 5보다 크거나 같고, 100을 넘지 않는다. |가 연속해서 등장하거나, 문자열의 양쪽 끝에 나오는 경우 www.acmicpc.net 🔸 문제 분석 🔸 주어진 악보가 가단조인지 다장조인지 출력한다. 악보를 '|' 기준으로 나누어서 마디의 첫 글자로 어떤 음조의 중심음이 많이 나왔는지로 구분한다. 중심음의 개수가 같으면 마지막 음으로 구분한다. 🔸 코드 🔸 gadan = ['A','D','E'] dajang = ['C','F','G'] music = input().split("|") ga = 0 da = 0 for m in music..
👉 문제링크 5566번: 주사위 게임 상근이는 혼자 보드 게임을 하고 있다. 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. 각 칸에는 지시 사항이 적혀있다. 지시 사항은 말을 얼만큼 이동해야 하 www.acmicpc.net 🔸 문제 분석 🔸 보드 게임의 정보를 입력받고, 주사위를 던진 결과를 받았을때, 몇 번째로 주사위를 던졌을때 게임이 끝나는지 출력한다. 보드 게임의 정보를 배열에 저장한다. 주사위 던진 결과를 하나씩 받으며 계산한다. 🔸 코드 🔸 import sys input = sys.stdin.readline n, m = map(int,input().split()) board = [0] * n for i in range(n): board[i] = int(inp..
👉 문제링크 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 🔸 문제 분석 🔸 나선 모양으로 커져가는 타일을 n개 배치했을때 만들어진 직사각형의 둘레를 출력한다. 3번째 타일 부터는 피보나치 수열 방식으로 증가한다. 🔸 코드 🔸 n = int(input()) arr = [1, 1] if n == 1: answer = 4 elif n == 2: answer = 6 else: for i in range(n-2): arr.append(sum(arr[-2:])) answer = arr[-1]*2 + sum(arr[-2:..