1. n 의 배수
문제설명
정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.
def solution(num, n):
if num % n ==0:
return 1
else:
return 0
2. 공배수
문제설명
정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
def solution(number, n, m):
if number % n==0 and number % m ==0:
return 1
else:
return 0
3. 홀짝에 따른 다른 값 반환하기
문제 설명
양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
첫번째 시도
def solution(n):
answer = 0
if n % 2 == 0:
for i in range(2, n + 1):
answer += i ** 2
else:
for i in range(1, n + 1):
answer += i
return answer
이렇게 했더니 자꾸 기댓값이 다르다는 결과를 받았다. ..
내가 실행한 결과가 너무 커서 어떤 식이 잘못되었나 생각해보았더니
첫번째 코드로 하면
짝수만 실행되는게 아니라 모든 수를 제곱하고 있다는 걸 깨달았다.
range 의 특성을 활용해서
range(start, stop, step)
이걸 활용해서 짝수만 골라내서 제곱하도록 하면 된다.
해결코드
- n을 짝수와 홀수로 구별
- i 는 양의정수이니까 홀수 아니면 짝수에서 시작하게 함
- 홀수 혹은 짝수만 골라내야하니 step 을 활용하도록 함
def solution(n):
answer = 0
if n % 2 == 0:
for i in range(2, n + 1, 2):
answer += i ** 2
else:
for i in range(1, n + 1, 2):
answer += i
return answer
4. 조건 문자열
문제설명
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
두 수가 n과 m이라면
- ">", "=" : n >= m
- "<", "=" : n <= m
- ">", "!" : n > m
- "<", "!" : n < m
두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
def solution(ineq, eq, n, m):
if ineq == ">":
if eq == "=":
return 1 if n >= m else 0
elif eq == "!":
return 1 if n > m else 0
elif ineq == "<":
if eq == "=":
return 1 if n <= m else 0
elif eq == "!":
return 1 if n < m else 0
return 0
5. flag 에 따라 다른 값 반환하기
문제설명
두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.
첫번째시도
def solution(a, b, flag):
if flag == 'true':
return a+b
else:
return a-b
해결방법
def solution(a, b, flag):
if flag:
return a + b
else:
return a - b
내 코드의 문제점:
나는 boolean 변수라고 주어진 flag 를 문자열 'ture' 와 비교를 해서 문제가 일어났다.
따라서 코드가 boolean 을 인식하지 못하고 문자열 자체와 비교를 하지 못하기 때문에 항상
else 블록이 실행되게 된다 ('true' 를 인식하지 못함 왜냐면 이거는 문자열이라서)
'Algorithm' 카테고리의 다른 글
[Python] 프로그래머스 트레이닝 챌린지 D6 (7) | 2024.07.22 |
---|---|
[Python] 프로그래머스 트레이닝 챌린지 D5 (0) | 2024.07.21 |
[Python] 프로그래머스 트레이닝 챌린지 D3 (0) | 2024.07.17 |
[Python] 프로그래머스 트레이닝 챌린지 D2 (0) | 2024.07.16 |
[Python] 프로그래머스 트레이닝 챌린지 D1 (0) | 2024.07.15 |