본문 바로가기

알고리즘86

프로그래머스) 수박수박수박수박수박수? 문제 (파이썬) 문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 3 "수박수" 4 "수박수박" 나의 풀이 def solution(a): if a % 2 == 0: return "수박"*(a//2) else: return "수박"*(a//2)+"수" 이번 문제는 홀수일 때 는 항상 뒤에 "수"가 붙는 것을 파악하여 a가 짝수(a%2==0)이면 수박*(a//2)를 반환하고, 홀수이면 짝수 뒤에 "수"를 더하였다. 2022. 8. 7.
프로그래머스) 두 정수 사이의 합 문제 (파이썬) 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 3 5 12 3 3 3 5 3 12 나의 풀이 def solution(a, b): tmp = [] if a < b: for i in range(a,b+1): # b로 할 경우 b-1까지 출력! tmp.append(i) else: for i in range(b,a+1): tmp.append(i).. 2022. 8. 7.
백준) 4849번 베르트랑 공준 문제 (파이썬) 문제) 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. num = [] for i in range(2, 246913): # 문제에서 주어진 범위 cnt = 0 for j in range(2, int(i**0.5)+1): # 에라토스테네스의 .. 2022. 7. 20.
백준) 1929번 소수 구하기 문제 (파이썬) 문제) M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. a, b = map(int,input().split()) for i in range(a, b+1): if i == 1: # 1은 소수가 아니므로 제외 continue for j in range(2,int(i**0.5)+1): # i**0.5는 제곱근을 의미 if i % j == 0: # 약수가 존재하므로 소수가 아님 break # 더이상 검사할 필요가 없으므로 멈춤 else: print(i) 이번 문제는 a, b를 입력하고, 반복문을 통해 a 부터 b+1까지 반복한다. 1은 소수가 아니므로 continue를 써 통과하도록 하였다. 두번째 반복문은 소수에 대한 정의가 나온다. 2부터 i의 제곱근까지 나눠떨어지는 숫자는 소수가 아니다. 이것.. 2022. 7. 19.
백준) 1934번 최소공배수 문제 (파이썬) 문제) 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. T = int(input()) # 유클리드 호제법 for i in range(T): a, b = map(int,input().split()) x, y = a, b while y != 0: # y가 0이 아니면 계속 반복 temp = x # temp = 6, 10, 6, 4 x = y # x = 10, 6, 4, 2 y = temp % y # y = 6, 4, 2, 0 .. 2022. 7. 19.
백준) 16170번 오늘의 날짜는? 문제 (파이썬) 문제) 2018 SCAL-MOOKJA에 출전하기로 한 무근이와 인서는 대회 준비를 위해 같이 모여 문제를 풀기로 했다. 그런데 어느 날, 일어나서 날짜를 확인해 보니 무근이와 인서의 시계가 서로 다른 날짜를 가리키고 있었다. 두 사람이 정확한 날짜에 모일 수 있도록 문제를 푸는 지금 시각이 UTC+0(세계 표준시)을 기준으로 무슨 날짜인지 출력해 주는 프로그램을 작성하자. 만약 서울에서 확인한 시각이 2018년 9월 29일 오후 2시 정각이라면 UTC+0 기준의 시각은 2018년 9월 29일 오전 5시 정각이다. import datetime data = datetime.datetime.now() + datetime.timedelta(hours=9) # 한국 시간은 UTC + 9 이다. print(data.. 2022. 7. 18.
728x90