TIL
[240111] 파이썬: 코드카타 15
동명이인B
2024. 1. 11. 20:52
[파이썬 코드카타]
나머지가 1이 되는 수 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/87389
1) 어떤 문제가 있었나
반복문을 무한하게 돌게 하고자 하는데 range 값으로 구현이 어려웠음
2) 내가 시도해본 건 무엇인가
range에 시작값만 입력해보았으나 오류. 구글링을 통해 while 함수 확인
3) 어떻게 해결했나
while 함수를 통해 풀었으나, retrun answer 들여쓰기 위치를 잘못 넣어서 여러 번 오류 발생
> 코드 실행 전에 진행 흐름을 명확히 할 필요 있음def solution(n):
answer = 0
while True:
answer = answer + 1
if n % answer == 1:
return answer
#다른 사람 풀이
def solution(n):
return [x for x in range(1,n+1) if n%x==1][0]
#for문에 range 종료값을 n+1로 설정하면 처음 고민했던 부분 해결 가능했음
#return문 자체를 리스트로 만든 후, 첫 번째 값을 빼온 부분이 인상적
4) 무엇을 새롭게 알았나
- while: 조건문이 참인 동안 while 문에 속한 문장들이 반복해서 수행
while 조건문: #조건문 대신 Ture를 넣으면 무한루프
수행할_문장1
#예시 #점푸투파이썬
coffee = 10
money = 300
while money:
print("돈을 받았으니 커피를 줍니다.")
coffee = coffee -1
print("남은 커피의 양은 %d개입니다." % coffee)
if coffee == 0:
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break
- raage 개념 재정리:
range('종료값') #0부터 시작 #range(10) 이면 0~9
range('시작값', '종료값') #시작값부터 종료값-1까지 # #range(3, 8) 이면 3~7
range('시작값', '종료값', '증분') #시작값부터 증분 후 종료 #range(1,10,3) 이면 1, 4, 7