[코딩테스트] 입문 - Day. 06

jang·2026년 2월 19일

프로그래머스 입문

목록 보기
2/12

문제 1 ) 뒤집힌 문자열

[문제]

문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.

1. 나의 첫 번째 코드

def solution(my_string): return (my_string[ : : -1])

⇒ 어제 숫자열에 적용되었던 슬라이싱 기법을 그대로 사용. 문자열에도 적용 가능함을 확인.

✨ 마무리

문자열 뒤집기처럼 단순해 보이는 문제에서도

파이썬의 슬라이싱을 알고 있느냐에 따라

코드의 길이와 가독성이 크게 달라진다는 걸 느꼈다.

기본 문법을 정확히 이해하고 있는 것이

코딩테스트에서 얼마나 중요한지 다시 한 번 확인할 수 있었다.


문제 2 ) 직각삼각형 출력하기

[문제]

""의 높이와 너비를 1이라고 했을 때, “"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.

1. 나의 첫 번째 코드

n = int(input())

for i in range ( 1 , n + 1 ): print ( "*" * i )

  • range : 정해진 규칙의 숫자 시퀀스(반복용 범위)를 만들어서, 주로 for문에서 “몇 번 반복할지”를 정할 때 쓰는 함수
    • range (stop)
      • 0부터 시작

      • stop은 미포함

        ex ) range (5) ⇒ 0,1,2,3,4

    • range (start , stop)
      • start부터 시작

      • stop은 미포함

        ex) range(2,6) ⇒ 2,3,4,5

    • range (start, stop, step)
      • step만큼 건너뛰며 증가/감소

        ex) range( 1, 10, 2) ⇒ 1, 3, 5, 7, 9

    • 음수 step (감소하는 range) ex) range(5, 0 , -1) ⇒ 5,4,3,2,1

✨ 마무리

처음에는 이게 도대체 무슨 문제인지 뭘 요구 하는 문제인지 알아 차리는 데에 시간이 많이 소요 되었다.

반복문 for와 명령어 range를 사용해서 이런 구현도 할 수 있다는 것이 재밌었고,

range의 다양한 사용법에 더 흥미가 생겼다.


문제 3) 짝수 홀수 개수

[문제]

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

1. 나의 첫 번째 코드

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]

✨ 마무리

이번 문제를 통해 리스트 문제에서는

리스트 자체가 아니라 각 원소를 하나씩 처리해야 한다는 점을 다시 한 번 느꼈다.

짝수와 홀수를 구분하는 것보다

“어떻게 개수를 세는지”가 핵심이었고,

이를 위해 반복문과 조건문을 함께 사용하는 방법을 정리할 수 있었다.

앞으로도 리스트 관련 문제를 풀 때는

항상 원소 단위로 생각하는 습관을 유지하려고 한다.


문제 4) 문자 반복 출력하기

[문제]

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.

1. 나의 첫 번째 코드

def solution(my_string, n): for i in my_string: return i * n

⇒ 결과 : hhh

문제 1. return 위치

  • return은 함수가 즉시 종료되어 첫 글자만 반복하고 끝남.

문제 2. 문자열을 누적하지 않음

  • 각 문자를 반복해서 하나의 문자열로 이어 붙여야 함

✅ 정답으로 향하는 사고 방식

  1. 빈 문자열 준비
  2. 문자열을 한 글자씩 순회
  3. 각 글자를 N번 반복하여 누적
  4. 반복 끝난 후 return

2. 나의 두 번째 코드

def solution(my_string, n):

result = “”

for c in my_string

result += c * n

return result

  • += : 기존 값에 더한 뒤, 그 결과를 다시 그 변수에 저장

✨ 마무리

처음에는 +=가 단순히 줄여 쓴 표현이라고만 생각했지만,

직접 예제를 통해 확인해 보니

“기존 값에 더해서 다시 저장한다”는 개념이 명확해졌다.

이제 문자열이나 숫자를 누적해야 하는 문제에서도

+=를 사용하는지 이해하고 적용할 수 있을 것 같다.

profile
비전공자가 AI 엔지니어가 되는 과정

0개의 댓글