[프로그래머스] 시저 암호
[프로그래머스] 시저 암호
2020.10.11def solution(s, n): answer = [] for i in s: if i.isalpha(): if( 65 122: result = ord(i) + n - 26 answer.append(chr(result)) else : result = ord(i) + n answer.append(chr(result)) else: answer.append(' ') print(answer) return ''.join(answer)
[프로그래머스] 소수 찾기
[프로그래머스] 소수 찾기
2020.10.10def solution(n): count = 0 for i in range(1, n+1): temp_cnt = 0 for j in range(1,i+1): if i % j ==0: temp_cnt +=1 if temp_cnt == 2: count += 1 return count
[프로그래머스] K번째수
[프로그래머스] K번째수
2020.10.10def solution(array, commands): result = [] for i in commands: print(i) i_i = i[0] j_j = i[1] k_k = i[2] temp = array[int(i_i)-1:int(j_j)] temp = sorted(temp) result.append(temp[k_k-1]) return result 그냥 슬라이싱을 이용하는 문제이다. def solution(array, commands): return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands)) 이렇게도 할수 있다...
[프로그래머스] 약수의 합
[프로그래머스] 약수의 합
2020.10.10def solution(n): result = 0 for i in range(1, n+1): if n % i == 0: result += i return result 약수를 result 에 계속 더한다.
[프로그래머스] 짝수와 홀수
[프로그래머스] 짝수와 홀수
2020.10.10def solution(num): if num % 2 == 0: return "Even" else : return "Odd" 기본 문제이다.
[프로그래머스] 최대공약수와 최소공배수
[프로그래머스] 최대공약수와 최소공배수
2020.10.10def solution(n, m): def gcd(x,y): while(y): x,y = y, x%y return x def lcm(x,y): result = (x*y)//gcd(x,y) return result x = gcd(n,m) y = lcm(n,m) return (x,y) 유클리오 호제법을 이용한 방법이다.
[프로그래머스] x만큼 간격이 있는 숫자
[프로그래머스] x만큼 간격이 있는 숫자
2020.10.09def solution(x, n): result = [] for i in range(1,n+1): result.append(x * i) return result
[프로그래머스] 제일 작은수 제거하기
[프로그래머스] 제일 작은수 제거하기
2020.10.09def solution(arr): if arr[0] == 10 : return [-1] else : temp = min(arr) result = arr.remove(temp) return arr min 함수를 통해서 리스트의 최소 값을 구하고, remove 함수를 통해 최소 값을 제거한다.
[프로그래머스] 평균 구하기
[프로그래머스] 평균 구하기
2020.10.09def solution(arr): temp = 0 num = len(arr) for i in arr : temp += i return temp / num
[프로그래머스] 핸드폰 번호 가리기
[프로그래머스] 핸드폰 번호 가리기
2020.10.09문제에서는 문자열 s가 주어지고, 뒷 4자리를 제외한 문자들을 *로 처리한다. def solution(phone_number): temp = len(phone_number) return '*' * (temp - 4) + phone_number[temp-4:] 먼저 문자열의 길이를 파악하고, *의 개수를 temp - 4로 정해, 마지막 4자리를 제외한 나머지 문자열을 *로 변환한다. 그후 슬라이싱을 이용해 뒷 4자리를 추가해 준다.
[프로그래머스] 나누어 떨어지는 숫자 배열
[프로그래머스] 나누어 떨어지는 숫자 배열
2020.10.09def solution(arr, divisor): result = [] count = 0 Fail = [-1] for i in arr : if i % divisor == 0 : result.append(i) else : count += 1 print(count) if len(arr) == count : return Fail return sorted(result) 먼저 원소중 divisor로 나눠지는 것들을 result 리스트에 담고, 그렇지 않다면 count의 개수를 증가시킨다. 그후, 원소의 개수와 count의 개수가 같다면, 나누어지는것들이 없다는 뜻이기에 -1을 반환한다.
[프로그래머스] 문자열 내 p와 y의 개수
[프로그래머스] 문자열 내 p와 y의 개수
2020.10.09def solution(s): p = s.count('p') P = s.count('P') P_num = p + P y = s.count('y') Y = s.count('Y') Y_num = y + Y if P_num == Y_num : return True else : return False count 함수를 통해 p와 P, y와 Y의 개수를 찾고, 조건식을 이용해 결과값을 반환한다.
[프로그래머스] 2016년
[프로그래머스] 2016년
2020.10.07def solution(a, b): from datetime import date Month = a Day = b week = ['MON','TUE','WED','THU','FRI','SAT','SUN'] result = week[date(2016,Month,Day).weekday()] return result 다른 사람들의 풀이를 보니 사전을 이용하는 방법도 있다. def getDayName(a,b): day_name = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED'] month_dict = { "1":31, "2":29, "3":31, "4":30, "5":31, "6":30, "7":31, "8":31, "9":30, "10":31, "11":30, "12"..
[프로그래머스] 문자열 다루기 기본
[프로그래머스] 문자열 다루기 기본
2020.10.06def solution(s): if len(s) == 4: if s.isdigit() == True: return True else : return False elif len(s) == 6: if s.isdigit() == True: return True else : return False else : return False isdigit 함수를 통해서 문자열이 숫자로만 이루어졌는지 확인할수 있다.
[프로그래머스] 두 정수 사이의 합
[프로그래머스] 두 정수 사이의 합
2020.10.06def solution(a, b): if a == b: return a else: if a > b : a, b = b, a return sum(range(a,b+1)) a와 b의 값이 같다면, a를 반화해주고, 그렇지 않다면, 먼저 a와 b가 어떤 관계인지 알아야 한다. 만약 a의 값이 b보다 크게 될경우, 작은 수를 앞에 놔줘야 하므로, a, b = b, a를 통해서 위치를 바꿔주고, sum함수를 통해서 두 정수 사이의 값들을 더해준다.