문제/백준 41

[백준/BOJ] 2920번: 음계 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 생각 파이썬으로 풀면 되게 간단해지는 문제! split해서 입력 받은 뒤에, string으로 join 하여 비교하면 된다. 코드 play = list(map(str, input().split())) if "".join(play) == "12345678": print("ascending") elif "".join(play) == "87654321": p..

문제/백준 2023.01.07

[백준/BOJ] 2775번: 부녀회장이 될테야 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 생각 test_case 수가 2라면 층 호 층 호 처럼 입력이 들어온다 그래서 for문을 활용하여 층(floor) 호(unit)를 입력 받는다 0층의 리스트를 호만큼 만든다 0층의 i호에는 i명이 산다 k층의 n호 사람수를 찾기 위해 계산하고 가장 마지막 값을 출력하면 끝 코드 test_case = int(input()) for _ in range(test_case): floor = int(input()) unit = int(inp..

문제/백준 2023.01.01

[백준/BOJ] 5598번: 카이사르 암호 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/5598 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 생각 s는 입력받은 문자 알파벳 문자 3개씩 건너뛰면 되기 때문에 - 3을 해준다 조심해야할 점은 A, B, C를 - 3을 하면 알파벳을 벗어난다 코드 s = list(input()) for i in range(len(s)): convert_s = ord(s[i]) - 3 if convert_s < ord('A'): convert_s += 26 s..

문제/백준 2023.01.01

[백준/BOJ] 1157번: 단어 공부 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 생각 n에 단어를 입력받고 대문자로 바꿔줌 단어에 쓰인 알파벳을 알기 위해 Set 각 알파벳의 개수를 세어 cnt에 저장 cnt에서 가장 큰 수를 찾음 1개가 아니면 ?, 1개면 해당 인덱스 알파벳 출력 코드 n = input().upper() n_list = list(set(n)) cnt = [] for i in n_list: cnt.append(n.count(i)) many_n = max(cnt) if cnt.count(..

문제/백준 2023.01.01

[백준/BOJ] 8958번: OX 퀴즈 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 생각 n은 테스트 케이스 개수 case는 해당 테스트 케이스, count는 연속 개수, score는 해당 테스트 케이스의 점수 맞출 때마다 count의 수를 1씩 올려주고, score에 count 더하면 연속으로 맞췄을 때 점수에 반영이 된다 틀리면 count 수 초기화 코드 n = int(input()) for _ in range(n): case = input() cou..

문제/백준 2023.01.01

[백준/BOJ] 1159번: 농구 경기 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 생각 n은 선수의 수, players는 각 선수 성의 첫글자 성의 첫글자가 같은 것이 5개 이상이라면 possible에 추가 possible의 개수에 따라 출력 여부 결정 코드 n = int(input()) players = [] for _ in range(n): player = input() players.append(player[0]) possible = [] first_names = set(p..

문제/백준 2023.01.01

[백준/BOJ] 11721번: 열 개씩 끊어 출력하기 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 생각 파이썬의 String 특성을 잘 이용해보자 코드 n = input() for i in range(0, len(n), 10): print(n[i:i+10])

문제/백준 2023.01.01

[백준/BOJ] 1026번: 보물 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 생각 N은 길이 A, B를 입력 받자 (B는 재배열하면 안 된다) S를 최소값으로 하고 싶다면 A에서 가장 작은 값, B에서 가장 큰 값을 곱하면 된다. A는 재배열 했으니 순서대로 하나씩, B는 가장 큰 값을 리스트에서 제외하면서 코드 n = int(input()) a = sorted(list(map(int, input().split()))) b = list(map(int, inpu..

문제/백준 2023.01.01

[백준/BOJ] 1475번: 방 번호 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 생각 숫자를 문자로 받아 각 자리수를 접근하기 쉽게 함 각 자리수가 6 또는 9일 경우 개수가 비는 (세트에 숫자가 남는) index에 1 더하기 만약 6이 나와서 6을 채웠다면 (1 더했다면) 그다음 6 또는 9 는 9를 채움 (1을 더함) 코드 n = input() set = [0 for _ in range(10)] for num in n: i = int(num) if i == 6 or i == 9: if set[6]

문제/백준 2023.01.01

[백준/BOJ] 2577번: 숫자의 개수 (파이썬3/Python3)

문제 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 생각 세 숫자를 곱한 것의 각 자리수를 문자로 리스트화 하여 저장 만약 12345라면 ['1', '2', '3', '4', '5'] 0부터 9까지 하나씩 세어서 출력 코드 A = int(input()) B = int(input()) C = int(input()) result = list(str(A * B * C)) # 세 숫자를 곱한 것 for num in range(10): print(result.count(str(num)))

문제/백준 2023.01.01