문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
def solution(my_string): return (my_string[ : : -1])
⇒ 어제 숫자열에 적용되었던 슬라이싱 기법을 그대로 사용. 문자열에도 적용 가능함을 확인.
문자열 뒤집기처럼 단순해 보이는 문제에서도
파이썬의 슬라이싱을 알고 있느냐에 따라
코드의 길이와 가독성이 크게 달라진다는 걸 느꼈다.
기본 문법을 정확히 이해하고 있는 것이
코딩테스트에서 얼마나 중요한지 다시 한 번 확인할 수 있었다.
""의 높이와 너비를 1이라고 했을 때, “"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
n = int(input())
for i in range ( 1 , n + 1 ): print ( "*" * i )
0부터 시작
stop은 미포함
ex ) range (5) ⇒ 0,1,2,3,4
start부터 시작
stop은 미포함
ex) range(2,6) ⇒ 2,3,4,5
step만큼 건너뛰며 증가/감소
ex) range( 1, 10, 2) ⇒ 1, 3, 5, 7, 9
처음에는 이게 도대체 무슨 문제인지 뭘 요구 하는 문제인지 알아 차리는 데에 시간이 많이 소요 되었다.
반복문 for와 명령어 range를 사용해서 이런 구현도 할 수 있다는 것이 재밌었고,
range의 다양한 사용법에 더 흥미가 생겼다.
정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
def solution(num_list): even = len([x for x in num_list if x % 2 == 0]) odd = len([x for x in num_list if x % 2 == 1]) return [even,odd]
이번 문제를 통해 리스트 문제에서는
리스트 자체가 아니라 각 원소를 하나씩 처리해야 한다는 점을 다시 한 번 느꼈다.
짝수와 홀수를 구분하는 것보다
“어떻게 개수를 세는지”가 핵심이었고,
이를 위해 반복문과 조건문을 함께 사용하는 방법을 정리할 수 있었다.
앞으로도 리스트 관련 문제를 풀 때는
항상 원소 단위로 생각하는 습관을 유지하려고 한다.
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
def solution(my_string, n): for i in my_string: return i * n
⇒ 결과 : hhh
문제 1. return 위치
문제 2. 문자열을 누적하지 않음
✅ 정답으로 향하는 사고 방식
def solution(my_string, n):
result = “”
for c in my_string
result += c * n
return result
처음에는 +=가 단순히 줄여 쓴 표현이라고만 생각했지만,
직접 예제를 통해 확인해 보니
“기존 값에 더해서 다시 저장한다”는 개념이 명확해졌다.
이제 문자열이나 숫자를 누적해야 하는 문제에서도
왜 +=를 사용하는지 이해하고 적용할 수 있을 것 같다.