반응형

BRONZE Ⅰ 14

백준 BAEKJOON 1145번 적어도 대부분의 배수 [PYTHON/파이썬]

백준 BAEKJOON 1145번 적어도 대부분의 배수 [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/1145       Python의 math 라이브러리를 활용하여 최소공배수를 구했다.for문 3개를 사용하여 5개의 숫자 중 3개의 숫자를 골라 최소공배수를 구한 뒤문제의 조건에 맞게 최솟값을 구하여 출력하였다.      import mathnaturalNum = list(map(int, input().split()))result = []for i in range(3): for j in range(i + 1, 4): for k in range(j + 1, 5): result.append(math.lcm(naturalN..

ALGORITHM/PYTHON 2024.12.05

백준 BAEKJOON 2947번 나무 조각 [PYTHON/파이썬]

백준 BAEKJOON 2947번 나무 조각 [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/2947       while 문과 for 문을 함께 사용하여서 풀었다.while 문의 조건은 나무 조각의 순서가 [1, 2, 3, 4, 5]가 아닐 때 작동하고for 문은 i 인덱스와 i+1 인덱스를 활용해야 하기 때문에 전체 길이 5에서 -1을 한 4만큼 탐색한다.그리고 i 인덱스 값이 i+1 인덱스 값보다 크다면 둘의 자리를 바꿔줬다.바꿔줬다면 현재 나무 조각의 순서를 print하는 방향으로 결괏값을 도출했다.        woodCarving = list(map(int, input().split()))while woodCarving != [1, 2, 3, 4..

ALGORITHM/PYTHON 2024.10.30

백준 BAEKJOON 32132번 PlayStation이 아니에요 [PYTHON/파이썬]

백준 BAEKJOON 32132번 PlayStation이 아니에요 [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/32132      단순하게 문자열을 바꾸면 된다고 생각해서 replace()를 사용하여 풀었다.문제를 푸는 과정에서 replace를 여러개 사용할 수 있다는 것도 알게 되었다.      N = int(input())word = input()while True: if "PS4" in word or "PS5" in word: word = word.replace("PS4", "PS").replace("PS5", "PS") else: breakprint(word)

ALGORITHM/PYTHON 2024.09.02

백준 BAEKJOON 31859번 SMUPC NAME [PYTHON/파이썬]

백준 BAEKJOON 31859번 SMUPC NAME [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/31859        # 1for 문과 if 문을 활용하여 출전자의 영어 이름에서 알파벳이 중복되지 않도록 추출했다.그 동시에 버려진 문자를 세어줬다. # 2, 3버려진 문자의 개수에 4를 더한 값을 문자열 맨 뒤에 붙였다.그리고 출전 번호에 1906을 더한 값을 맨 앞에 붙였다. # 4[::-1]를 사용하여 문자열을 뒤집은 뒤문자열 맨 앞에 "smupc_"를 붙여줬다.     N, Name = input().split()result = ""# 1abandonedText = 0 # 버려진 문자for i in Name: if i not in res..

ALGORITHM/PYTHON 2024.07.03

백준 BAEKJOON 31823번 악질 검거 [PYTHON/파이썬]

백준 BAEKJOON 31823번 악질 검거 [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/31823       먼저 최대 리버스-스트릭을 구하기 위한 set 집합을 선언하였다.동아리원 수에 맞춰서 for 문을 돌렸고이들의 활동 기록과 이름을 받은 뒤에최장 리버스-스트릭을 구하기 위해 다시 한 번 for 문을 돌렸다.       N, M = map(int, input().split())countStreak = set() # 최대 리버스-스트릭KPSC_List = [] # 최장 리버스-스트릭, 이름을 저장할 리스트for _ in range(N): record = input().split() streak, name = record[:M], re..

ALGORITHM/PYTHON 2024.05.26

백준 BAEKJOON 30455번 이제는 더 이상 물러날 곳이 없다 [PYTHON/파이썬]

백준 BAEKJOON 30455번 이제는 더 이상 물러날 곳이 없다 [PYTHON/파이썬] (BRONZE Ⅰ) https://www.acmicpc.net/problem/30455 30455번: 이제는 더 이상 물러날 곳이 없다 건덕이와 건구스는 $N$개의 칸이 가로로 놓인 전장에서 승부를 겨루고 있다. 처음에는 가장 왼쪽 칸에 건덕이가, 가장 오른쪽 칸에 건구스가 자리 잡고 있으며, 승자는 아래 규칙에 따라 정해진 www.acmicpc.net BRONZE Ⅰ 난이도에 비해 쉬운 문제였다. 규칙만 파악한다면 칸의 개수가 홀수라면 건덕이가 이기고 짝수라면 건구스가 이긴다는 것을 알 수 있다. 이제는! 더 이상! 물러날 곳이 없~다! 앞으로~ 쭉쭉~ 쭉~!! N = int(input()) print("Duck..

ALGORITHM/PYTHON 2024.03.31

백준 BAEKJOON 31562번 전주 듣고 노래 맞히기 [PYTHON/파이썬]

백준 BAEKJOON 31562번 전주 듣고 노래 맞히기 [PYTHON/파이썬] (BRONZE Ⅰ) https://www.acmicpc.net/problem/31562 31562번: 전주 듣고 노래 맞히기 윤수와 정환은 「전주 듣고 노래 맞히기」라는 게임을 할 예정이다. 「전주 듣고 노래 맞히기」는 주어진 노래의 전주를 듣고 먼저 제목을 맞히는 사람이 점수를 얻어 최종적으로 점수가 더 많 www.acmicpc.net 전주의 첫 세 음을 노래 제목과 함께 딕셔너리에 담았다. 정환기가 맞히기를 시도할 노래의 첫 세음과 비교하면서 count 변수를 통해 몇 개인지 세어준 뒤, 2개 이상이면 "?"를 출력, 1개면 해당 노래 제목을 출력, 없다면 "!"를 출력했다. N, M = map(int, input().s..

ALGORITHM/PYTHON 2024.03.22

백준 BAEKJOON 9047번 6174 [PYTHON/파이썬]

백준 BAEKJOON 9047번 6174 [PYTHON/파이썬] (BRONZE Ⅰ) https://www.acmicpc.net/problem/9047 9047번: 6174 1949 년 인도 수학자 Kaprekar 는 Kaprekar 연산을 고안해냈다. Kaprekar 연산은 네 자리 수 중 모든 자리수가 같지 않은 수(1111, 2222 등을 제외한)의 각 자리의 숫자를 재배열해서 만들 수 있는 가장 큰 수 www.acmicpc.net for문과 while문을 함께 사용하여 풀었다. 1. 주어지는 수가 6174이면 바로 종료 2. 그렇지 않다면 단계의 수(cnt)에 1을 더해주고 주어지는 수를 재배열하여 가장 큰 수(내림차순)와 가장 작은 수(오름차순)을 변수 a, b에 저장 3. a에서 b를 뺀 값의 ..

ALGORITHM/PYTHON 2024.02.14

백준 BAEKJOON 17206번 준석이의 수학 숙제 [PYTHON/파이썬]

백준 BAEKJOON 17206번 준석이의 수학 숙제 [PYTHON/파이썬] (BRONZE Ⅰ) https://www.acmicpc.net/problem/17206 17206번: 준석이의 수학 숙제 10 이하의 3 또는 7의 배수는 3, 6, 7, 9가 있다. 21 이하의 3 또는 7의 배수는 3, 6, 7, 9, 12, 14, 15, 18, 21이 있다. www.acmicpc.net N의 조건을 보면 10 이상 80000 이하이다. 그냥 생각한 대로 코드를 짜면 시간초과가 난다. 먼저 리스트의 크기를 80001 만큼 만든 후에 3으로 나눠지거나 7로 나눠지는 부분이 있으면 배수들의 합을 리스트에 담아야한다. 메모이제이션을 활용하는 것이다. T = int(input()) N = list(map(int, ..

ALGORITHM/PYTHON 2024.01.27

백준 BAEKJOON 3035번 스캐너  [PYTHON/파이썬]

백준 BAEKJOON 3035번 스캐너 [PYTHON/파이썬] (BRONZE Ⅰ) https://www.acmicpc.net/problem/3035 3035번: 스캐너 첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고, ZR과 ZC는 1과 5 사이의 정수이다. 다음 R개 줄에는 신문 기사가 주어진다. www.acmicpc.net 2차원 배열을 이해하면 쉽게 풀 수 있다. 신문 기사의 글자를 리스트로 저장하여 ZC의 수만큼 사용하여 해당 글자들을 곱해준 뒤 ZR의 수만큼 늘려주면 된다. R, C, ZR, ZC = map(int, input().split()) paper = [input() for _ in range(R)] scanner = [] for i in range(..

ALGORITHM/PYTHON 2024.01.09
반응형