26-05-28
코테로 배워보는 파이썬 : 코드카타 21~23번
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
코테 문제 풀어보고 응용 문제 생각나는거 직접 풀어보기!
- 하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.- 컴퓨팅 사고
- 앞서 각 자리수를 더한 값으로 x를 나눠 나머지가 0인지 확인한다.
- x의 자릿수를 map과 list로 분리한 뒤 sum으로 합한다.
- my_answer (⭕)
def solution(x):
a = sum(list(map(int,str(x))))
if x%a==0:
answer = True
else:
answer = False
return answer- list(map(함수, 리스트)) : 자릿수 구분에 제일 많이 사용
위의 코드에서 str(x)를 사용해 문자열로 만들면 문자열은 Iterable 객체라서 한 글자씩 분리가 가능
→ 분리된 객체에 각각 map으로 int를 씌우는 것
- list(map(함수, 리스트)) : 자릿수 구분에 제일 많이 사용
- 컴퓨팅 사고
- 두 정수 사이의 합
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
- 컴퓨팅 사고
- a>b의 경우와 b>a의 경우를 각각 고려
- range를 사용하여 0부터 for문을 사용해 i를 a부터 b까지 더할 것
- my_answer (⭕)
def solution(a, b):
answer = 0
if a<b:
for i in range(a,b+1):
answer+=i
else:
for i in range(b,a+1):
answer+=i
return answer - 다른 사람 풀이
- 가우스 합 (최대값 + 최솟값)/(갯수*0.5) 활용
def adder(a, b):
return (a+b)*(abs(a-b)+1)//2 - 최대, 최소 함수 활용
def adder(a, b):
return sum(range(min(a, b), max(a, b)+1)) #min, max를 활용해 최소~최대까지 range를 설정 가능
- 가우스 합 (최대값 + 최솟값)/(갯수*0.5) 활용
- 컴퓨팅 사고
- 콜라츠 추측
1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요.- 컴퓨팅 사고
- 입력 숫자가 1 될 때 까지 반복은 while로 설정
- 짝수 조건걸고 1-1, 아닐 대 1-2 설정
- 결과가 500 넘을 때를 조건으로 -1 반환
- my_answer (⭕)
def solution(num):
answer = 0
while num != 1:
if num%2==0:
num = num/2
answer+=1
else:
num = num*3 + 1
answer+=1
if answer>500:
answer=-1
return answer
- while 문 : while 문에서 조건은 해당 조건이 성립하는 동안만 실행하는 것
→ 즉, 1이 될 때까지 실행하고 싶다면 1이 아닐 때를 조건으로 만들면 되는 것
- while 문 : while 문에서 조건은 해당 조건이 성립하는 동안만 실행하는 것
- 컴퓨팅 사고
'TIL > Python' 카테고리의 다른 글
| 코테로 파이썬 공부하기 Ⅷ (0) | 2026.06.01 |
|---|---|
| 코테로 파이썬 공부하기 Ⅶ (0) | 2026.05.29 |
| 코테로 파이썬 공부하기 Ⅲ (0) | 2026.05.25 |
| 코테로 파이썬 공부하기 Ⅱ (0) | 2026.05.22 |
| 코테로 파이썬 공부하기 Ⅰ (0) | 2026.05.20 |