[코딩테스트] 입문 Day. 15

jang·2026년 3월 29일

프로그래머스 입문

목록 보기
11/12

문제 1) 영어가 싫어요

[문제]

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

1. 내 정답

def solution(numbers)
	num_dict = {
		"zero": "0",
		"one": "1",
		"two": "2",
		"three": "3",
		"four": "4",
		"five": "5",
		"six": "6",
		"seven": "7",
		"eight": "8",
		"nine": "9"
	}
	
	for word, num in num_dict.items():
		numbers = numbers.replace(word,num)
		
	return int(numbers)

2. 풀이

  • num_dict = { “zero” : “0” ~ “nine” : “9”}: 딕셔너리로 짝꿍을 저장하는 상자이다. zero가 나오면 0으로 바꾸겠다는 뜻
  • for word, num in num_dict.items(): num_dict.items() 는 딕셔너리에 들어 있는 내용을 하나씩 꺼내라는 뜻으로 word에는 영어 단어가 들어가고 num에는 숫자 문자열이 들어간다.
  • numbers = numbers.replace(word,num): numbers 안에 있는 word를 찾아서 그걸 num으로 바꿔라
  • return int(numbers): 문자열로 된 numbers를 숫자 타입으로 바꿔준다

문제 2) 인덱스 바꾸기

[문제]

문자열 my_string과 정수 num1num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

1. 내 정답

def solution(my_string, num1, num2):
	x = list(my_string)
	x[num1],x[num2] = x[num2],x[num1]
	return ''.join(x)
	print(x)

2. 풀이

  • x = list (my_string): my_string을 list로 변환하여 x에 넣는다
  • x[num1], x[num2] = x[num2], x[num1]: num 1과 num2의 위치를 바꾼다.
  • return ‘’.join(x): x를 공백없이 합쳐서 값을 리턴한다.

문제 3) 한 번만 등장한 문자

[문제]

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

1. 내 정답

def solution(s):
	answer = ''
	for i in s:
		if s.count == 1:
			answer += i
	return ''.join(sorted(answer)

2. 풀이

  • answer = ‘ ‘ : 문자열을 반환하라 했기 때문에, 빈 문자열 생성
  • for i in s: i에다가 s에 있는 문자들을 하나씩 대입한다.
  • if s.count ==1: 우리가 알고 싶은건 글자 i가 문자열 전체 s 안에서 몇 번 나왔는가 이기 때문에 s에서 count 된 수가 1과 같다면
  • answer += i: answer에 i를 추가해라
  • return ‘’.join (sorted(answer): 정렬한 anwer을 합쳐서 리턴하라

문제 4) 약수 구하기

[문제]

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

1. 내 정답

def solution(n):
	answer = []
	for i in range(1,n+1):
		if n % i == 0;
			answer.append(i)
	return answer

2. 풀이

  • for i in range(1,n+1): 1부터 n까지의 범위에 있는 수들을 차례대로 i에 대입한다.
  • if n % i == 0;: 만약 n을 i로 나눈 값의 나머지가 0이라면
  • answer.append(i): i를 리스트 answer에 추가하라.

✨ 마무리

뭔가 코딩적 사고방식에 익숙해지는 느낌!

전에는 애매했던 개념들이 조금씩 자리를 잡고 있는 것 같다

예를 들어 += 와 append의 사용 방법의 차이라던가, 언제 빈 리스트를 만들고 빈 변수를 만들어야 하는지를 구분하여 사용할 수 있게 되었다.

지금은 입문 문제니까 간단하게 생각해서도 풀 수 있겠지만, 앞으로 만날 더 어렵고 복잡한 문제들을 풀 생각에 벌써부터 두려워지기 시작하면서 한 편으로는 두근거리기도 한다.

그런 문제들도 스스로 풀 수 있을 때까지 화이팅!

コーディング的な考え方に少しずつ慣れてきた気がする!

前はあいまいだった概念が、少しずつ自分の中で形になってきている気がする。

例えば、+= と append の使い方の違いや、どんなときに空のリストを作って、どんなときに空の変数を作るのかを区別して使えるようになってきた。

今はまだ入門レベルの問題だから、シンプルに考えて解けることも多いと思う。けれど、これから出会うもっと難しくて複雑な問題を思うと、今から少し怖くもなるし、その一方でわくわくもしている。

そんな問題も自分の力で解けるようになるまで、頑張ろう!

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

0개의 댓글