두 정수 사이의 합
https://school.programmers.co.kr/learn/courses/30/lessons/12912
답:
더보기
def solution(a, b):
answer = 0
if b > a:
for num in range(a, b+1):
answer += num
else:
for num in range(b, a+1):
answer += num
return answer
너무 펼쳐진 식이라 고민하다가 약간의 변경
def solution(a, b):
answer = 0
if a == b:
return a
if a > b:
a, b = b, a
for num in range(a, b+1):
answer += num
return answer
문제 분석 및 해석
두 정수 a, b
a b포함 사이의 모든 정수의 합을 return
a와 b가 같은 경우는 둘 중 아무 수나 리턴
a, b -10,000,000 이상 10,000,000 이하인 정수
핸드폰 번호 가리기
https://school.programmers.co.kr/learn/courses/30/lessons/12948#
답:
더보기
def solution(phone_number):
answer = ''
answer = "*" * len(phone_number[:-4])
for i in reversed(range(1,5)):
answer += phone_number[-i]
return answer
def solution(phone_number):
answer = ''
answer = "*" * len(phone_number[:-4])
for i in range(4,0,-1):
answer += phone_number[-i]
return answer
역 반복문 사용
한 줄로 줄이기
def solution(phone_number):
return ("*"*(len(phone_number)-4)) + phone_number[-4:]
문제 분석 및 해석
phone_number,
길이 4 이상 20이하인 문자열
뒷 4자리를 제외한 나머지 자리를 *로 만들어서 return하기
❌ 오류 발생 !!
def solution(phone_number):
answer = ''
answer = "*" * len(phone_number[:-4])
for i in range(1,5):
answer += phone_number[-i]
# 여기서 -1 -2 -3 -4대로 넣다보니 거꾸로 넣어지면서 오류가 난 듯
return answer
오류를 고쳐보자.
따라서 range를 거꾸로 나오도록 하는 방법을 찾아보았다
큰 숫자부터 작은 숫자 순으로 나오는 것을 역반복문이라고 한다.
for i in range(3, 0, -1):
print("🙂", i)
# 3번째 인자 -1을 사용할 경우 두번째 인자 -1을 출력
for i in reversed(range(0, 3)):
print("✨", i)
# reversed를 사용할 경우 두번째 인자 -1 부터 출력
range 함수의 특징 :
두번째 인자에서 -1 뺀 만큼 출력해준다
역 반복문에서도 마찬가지로 0 혹은 3이 빠진 형태로 나오는 것을 확인할 수 있었다.
궁금해서 해본 (작은 수, 큰 수, -1)
for i in range(0, 3, -1):
print("☺️", i)
# 출력 안됨
'알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 프로그래머스 | 하샤드 수, 나누어 떨어지는 숫자 배열, 행렬의 덧셈 (0) | 2023.08.05 |
---|---|
[알고리즘] 프로그래머스 | 문자열 다루기, 없는 숫자 더하기, x만큼 간격이 있는 n개의 숫자 (0) | 2023.08.04 |
[알고리즘] 프로그래머스 | 평행 (2) | 2023.08.02 |
[알고리즘] 프로그래머스 | OX퀴즈, 캐릭터의 좌표 (0) | 2023.08.01 |
[algorithm] 페어 - 프로그래머스: 폰켓몬, 전화번호 목록 (0) | 2023.06.02 |