본문 바로가기

Algorithm/Python

(31)
[백준알고리즘] 2753번 윤년 (Python) 문제 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. 입력 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다. 출력 첫째 줄에 윤년이면 1, 아니면 0을 출력한다. 코드 year = int(input()) if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) : print(1) else ..
[백준알고리즘] 1798번 수들의 합 (Python) 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 코드 S = int(input()) # 최대값 N = 1 # 자연수 n sum = 0 # 합계 while True : sum += N if sum > S : print(N-1) # 합계가 더 클 경우 N에서 1을 뺀 값 출력 break elif sum == S : # 합계와 S의 값이 같으면 N 그대로 출력 print(N) break N += 1 # 조건에 만족하지 않을 때 1씩 더하기 출처
[백준알고리즘] 11653번 소인수분해 (Python) 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 코드 N = int(input()) i = 2 while N != 1 : if N % i == 0 : N = N//i print(i) else : i += 1 N이 분해가 될 때까지 while문 돌리기 N에서 2를 나눠주고 나머지가 0이면 소인수분해에 해당하는 값이기 때문에 N에서 i를 나눈 몫을 다시 N에 넣어줌 해당 조건을 만족하지 않을시 i에 1씩 더해줌 출처
[백준알고리즘] 10817번 세 수 (Python) 문제 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) 출력 두 번째로 큰 정수를 출력한다. 코드 score = list(map(int,input().split())) score.sort(reverse=True) print(score[1]) 입력받은 값을 int타입으로 변환 후 list형태로 받음 기본이 string이기 때문에 int로 바꿔줘야함.. 정렬할 때 reverse 속성을 써서 내림차순으로 정렬되게 바꿈 리스트에서 가운데 데이터 꺼내기 출처