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

jang·2026년 3월 15일

프로그래머스 입문

목록 보기
8/12

문제 1) 모음 제거

[문제]

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

1. 내 정답

def solution(my_string):
	for vowel in "aeiou":
		my_string = my_string.replace(vowel, "")
	return my_string

2. 풀이

  • for vowel in “aeiou”: vowel 이라는 상자 안에 aeiou를 넣기
  • my_string = my_string.replace(vowel, “”): replace(바꿀문자, 새문자)로 문자열 안에서 바꿀문자를 찾아서 새문자로 바꾸기

✨ 마무리

replace 명령어를 사용하면 되는 간단한 문제였지만 숫자가 아니라 문자를 공백으로 만드는 거라 복잡하게 생각했었다. 수많은 명령어들 중 자주 사용하는 것들은 무조건 내 것으로 만들어야하는데..라는 생각에 마음이 초조해지지만 나만의 페이스를 유지하며 천천히 꾸준히 해나가자!

replaceを使えば解けるシンプルな問題だったのに、数字ではなく文字を空文字にするという点で、少し複雑に考えてしまった。

たくさんある命令文の中でも、よく使うものは必ず自分のものにしなければならないと思うと焦る気持ちもあるけれど、自分のペースを保ちながら、ゆっくりでも着実に続けていこうと思う。


문제 2) 문자열 정렬하기

[문제]

문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

1. 내 정답

def solution(my_string):
	result = [int(ch) for ch in my_string if ch.isdigit()]
	result.sort(reverse = False)
	return result

2. 풀이

result = [int(ch) for ch in my_string if ch.isdigit()]

  • for ch in my_string: my_string에서 글자를 하나씩 꺼내기
  • if ch.isdigit(): 그 글자가 숫자라면 이라는 뜻으로 확인하는 기능
  • int(ch): 숫자인지를 확인받은 ch를 int로 바꿔준다

✨ 마무리

isdigit이라는 명령어를 처음 봤다. 역시나 명령어 공부가 필수다!

알면 알수록 할 수 있는 것들이 많다는 생각에 굉장히 흥미롭다.

isdigitという命令を初めて見た。やはり命令文の勉強は必須だと感じる。

知れば知るほど、できることがどんどん増えていくと思うと、とても興味深い。


문제3) 숨어있는 숫자의 덧셈

[문제]

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

1. 내 정답

def solution(my_string)
	numbers = [int(ch) for ch in my_string if ch.isdigit()]
	return sum(numbers)

✨ 마무리

2번 문제에서 활용했던 isdigit를 다시 한 번 활용하여 해결하였다.

이렇게 지속해서 사용해봐야 내 머리에 익숙해질 수 있을 것 같다.

문제 많이 많이 풀자!~

2問目で活用した isdigit を、今回ももう一度使って解決した。

このように繰り返し使ってみることで、やっと自分の頭にも自然に馴染んでいく気がする。

これからも問題をたくさんたくさん解いていこう!


문제 4) 소인수분해

[문제]

소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 2 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

1. 내 정답

def solution(n):
	answer = []
	i = 2
	
	while i <= n:
		if n % i == 0:
			if i not in answer:
				answer.append(i)
			n //= i 
		else:
			i += 1
		return answer

2. 풀이

  • answer = [ ]: 결과를 담을 빈 리스트를 만드는 것
  • i = 2: 1이 아닌 2부터 나누어보겠다는 뜻
  • while i ≤ n : i가 n보다 작거나 같을 동안 계속 반복해라는 뜻
  • if n % i == 0: n을 i로 나눴을 때 나머지가 0과 같다면
  • if i not in answer: i가 아직 answer에 없으면
  • answer.append(i): answer에 i를 넣어라
  • n//=i: n을 i로 나눈 몫으로 다시 바꿔라
  • i += 1: 나누어 떨어지지 않으면 i에 1을 더해라

✨ 마무리

소인수분해라는 간단한 것을 코드로 표현하자니 이렇게 길어진다는게 놀랍다.

이 정도보다 더 어려운 문제들이 많다고 생각하니 머리가 아파오지만 화이팅!~~

素因数分解というシンプルなことでも、コードで表現しようとするとこんなに長くなるのかと驚いた。
これよりもっと難しい問題がたくさんあると思うと頭が痛くなってくるけれど、頑張ろう!~~

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

0개의 댓글