728x90

2025/03 31

[백준] 18110 | solved.ac [파이썬/python]

문제link: https://www.acmicpc.net/problem/18110난이도에 대한 의견을 정수로 입력받아 30% 절사평균을 출력하는 문제이다.  접근30% 절사평균을 구할 때, 제외할 값의 수와 평균은 모두 반올림한다.파이썬의 round()를 사용하지 않고, 직접 반올림을 구현했다. 코드import sysinput = sys.stdin.readlinen = int(input())if n == 0: print(0) else: p = n * 0.15 p = int(p) if (p * 10) % 10

코딩테스트 2025.03.31

[백준] 10828 | 스택 [파이썬/python]

문제link: https://www.acmicpc.net/problem/10828스택을 구현하는 문제이다. 접근if문으로 입력되는 명령을 구분해 처리하도록 구현했다. 코드import sysinput = sys.stdin.readlines = []for _ in range(int(input())): tmp = input().split() if tmp[0] == 'push': s.append(tmp[1]) elif tmp[0] == 'pop': print(s.pop() if s else -1) elif tmp[0] == 'size': print(len(s)) elif tmp[0] == 'empty': print(0 if s else 1) elif tmp[0] == 'top':..

코딩테스트 2025.03.31

[백준] 1920 | 수 찾기 [파이썬/python]

문제link: https://www.acmicpc.net/problem/1920두 개의 자연수 목록을 받아 두 번째 목록의 숫자들이 첫 번째 목록에 존재하는지를 확인하는 문제이다. 접근처음 입력받은 자연수 목록을 set에 저장한 후, for문을 통해 두 번째 자연수를 하나씩 조회하며 결과를 출력하도록 했다. 코드import sysinput = sys.stdin.readlineN = int(input())A = set(map(int, input().split()))M = int(input())for b in map(int, input().split()): if b in A: print(1) else: print(0)

코딩테스트 2025.03.31

[백준] 1676 | 팩토리얼 0의 개수 [파이썬/python]

문제link:  https://www.acmicpc.net/problem/1676 접근n!을 구한 후, 뒤에서부터 0의 개수를 세는 문제이다. 단, 0이 아닌 숫자가 나올 때까지만, 즉, 연속되어 있는 0의 개수만 센다.팩토리얼을 구한 후 for문을 통해 세는 방법도 있겠지만, 10이 곱해질 때마다 0이 늘어난다는 점에서 착안해 팩토리얼 계산 과정에서 곱해지는 5의 개수를 셈해 출력하도록 했다. 코드N = int(input())f = 5cnt = 0while N >= f: cnt += N // f f *= 5 print(cnt)

코딩테스트 2025.03.31

[백준] 2609 | 최대공약수와 최소공배수 [파이썬/python]

문제link: https://www.acmicpc.net/problem/2609입력받은 두 수의 최대공약수와 최소공배수를 구하는 문제이다. 접근유클리드 호제법을 사용하면 최대공약수와 최소공배수를 쉽게 구할 수 있다.최대공약수를 먼저 구한 후, 최소공배수는 구한 최대공약수를 이용해 구했다.(n * m = 최대공약수 * 최소공배수 인 것을 활용했다.) 코드import sysinput = sys.stdin.readlinen, m = map(int, input().split())def euc(a, b): if b > a: a, b = b, a a = a % b if a == 0: return b else: return euc(b, a) gcd = euc(n, m)lcm = n * m ..

코딩테스트 2025.03.31

[백준] 28702 | FizzBuzz [파이썬/python]

문제link: https://www.acmicpc.net/problem/28702 접근입력값이 세 개 주어지는데, 적어도 한 번은 숫자가 나오기 때문에 숫자가 입력된 경우 그 숫자를 이용해 답이 될 수를 찾도록 코드를 설계했다.함수 FizzBuzz를 만들어 출력할 값을 규칙에 따라 출력하도록 했다. 코드import sysinput = sys.stdin.readlinedef fizzbuzz(i): if i % 3 == 0 and i % 5 == 0: print('FizzBuzz') elif i % 3 == 0: print('Fizz') elif i % 5 == 0: print('Buzz') else: print(i)for i in ra..

카테고리 없음 2025.03.30

[백준] 1259 | 팰린드롬수 [파이썬/python]

문제link: https://www.acmicpc.net/problem/1259입력받은 수가 팰린드롬수인지 체크하여 출력하는 문제이다. 접근[::-1]로 문자열을 뒤집어 비교하는 방법도 있지만, for문을 통해 인덱스로 접근하여 팰린드롬수인지를 확인하도록 구현해보았다. 코드import sysinput = sys.stdin.readlinewhile 1: tmp = input().strip() f = 1 if tmp == '0': break for i in range(len(tmp)//2): if tmp[i] != tmp[-(i+1)]: f = 0 break print('yes' if f else 'no')

코딩테스트 2025.03.30

[백준] 15829 | Hashing [파이썬/python]

문제link: https://www.acmicpc.net/problem/15829해시 함수를 이용해 계산한 해시 값을 출력하는 문제이다. 접근문제를 참고해 해시 값을 계산한다.sys.stdin.readline을 사용할 경우 꼭 .strip()(또는 .rstrip())을 사용해 개행 문자를 제거해주어야 한다. 코드import sysinput = sys.stdin.readlineL = int(input())abc = input().strip()r = 1M = 1234567891H = 0for i in abc: H = (H + (ord(i) - ord('a') + 1) * r) % M r = (r*31) % M print(H)

코딩테스트 2025.03.30

[백준] 30802 | 웰컴 키트 [파이썬/python]

문제link: https://www.acmicpc.net/problem/30802규칙에 따라 주문할 티셔츠와 펜의 개수를 계산해 출력하는 문제이다. 접근티셔츠의 경우, T개 묶음으로 주문할 수 있다. 신청한 대로 나눠주되 남는 것은 괜찮고 모자라서는 안 된다. 따라서 사이즈별로 T 값에 따라 올림해 주문한다.펜의 경우, P자루 묶음으로도 주문할 수 있고 개별로도 주문할 수 있다. 전체 인원에서 P로 나눈 값(묶음의 개수)과 나머지(개별 주문 개수)를 출력한다. 코드import sysinput = sys.stdin.readlineN = int(input())size = list(map(int, input().split()))T, P = map(int, input().split())print(sum((i -..

코딩테스트 2025.03.29

[백준] 9184 | 신나는 함수 실행 [파이썬/python]

문제link: https://www.acmicpc.net/problem/9184문제에서 제시하는 함수 w(a, b, c)의 실행 결과를 반환하는 문제이다. 접근문제에서 제시된 함수 w(a, b, c)는 재귀함수 형태라 효율적이지 않다.함수 w가 a, b, c 중 하나라도 0 이하일 때는 1을 반환하고 하나라도 20 이상일 때는 w(20, 20, 20)을 반환하기 때문에, 3차원 리스트 W를 만들어 W[0][0][0] ~ [20][20][20]의 값을 미리 계산해 저장한 후 사용했다. for문을 통해 a, b, c가 적은 것부터 구해 다음 값 계산에 활용했다.a == b == c == -1인 경우 프로그램을 종료한다.코드import sysinput = sys.stdin.readlinedef w(a, b, ..

코딩테스트 2025.03.28
728x90