목록BOJ (335)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MvpKD/btrRvboUObx/wSnwRwGDJasYohGTapCE41/img.png)
👉 문제링크 2704번: 이진법 시계 각 테스트 케이스마다, 3열 방식으로 읽은 이진법 시계의 시각과 3행 방식으로 읽은 이진법 시계의 시각을 공백으로 구분하여 출력한다. 각각 18개의 비트를 가져야 한다. www.acmicpc.net 🔸 문제 분석 🔸 시분초를 입력받아 6자리 이진수로 만들고, 3열방식과 3행방식으로 출력한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR..
![](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..