목록CodingTest (430)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lBk0i/btrRtchMGr2/K9YdYLL0VymoinIC2ufIcK/img.png)
👉 문제링크 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 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sEiHR/btrRlI25Hh1/2BkMkhtkvpAGFfb3JwShak/img.png)
👉 문제링크 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 🔸 문제 분석 🔸 재귀식으로 대사를 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { private static void re(int d, String front) { System.out.println(front + "\"재귀함수가 뭔가요?\""); if (d == 0) { System.out.println(front + "\"재귀함수는 자기 자신을 호출하는 함수라네\""); } else { S..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/A7u3U/btrRjXjC8lY/iS5FVoQRtYmM3Nfq24daY0/img.png)
👉 문제링크 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eUeTML/btrQ1llWY8d/UcH53N3I6kmvcQTXFxykeK/img.png)
👉 문제링크 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bGEJIG/btrQZr1yETU/i1GEZAwBS5uPIc3lW2cT1K/img.png)
👉 문제링크 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 🔸 문제 분석 🔸 문자열 배열을 다음과 같은 세 조건으로 정렬해서 출력한다. 길이가 다르다면 짧은 것이 앞에 온다. 길이가 같다면, 한 문자열 안에 들어있는 숫자의 합이 작은 것이 먼저 온다. 숫자의 합도 같다면, 문자열을 사전순 비교한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..