Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 연구
- 프로그래머스
- MySQL
- outer join
- Aspect
- 자연어처리
- leetcode
- Bert
- 머신러닝
- SQL 첫걸음
- 파이썬
- 논문리뷰
- NLP
- 그래프
- 가상환경
- 코딩테스트
- transformer
- GPT
- paper review
- gpt1
- 분산
- 알고리즘
- join
- 백준
- deepseek
- dfs
- ChatGPT
- LLM
- SQL
- ABAE
Archives
- Today
- Total
huginn muninn
[프로그래머스] 옹알이1 파이썬 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
옹알이 할 수 있는 단어는 ["aya", "ye", "woo", "ma"] 뿐, 이 4단어의 조합으로 만든 단어는 옹알이 할 수 있다. 즉 ayaye, ayawoo도 옹알이 할 수 있다. 주어진 babbling 리스트의 각 문자열에서는 "aya", "ye", "woo", "ma"가 한 번씩만 등장한다.
내가 이해한 바로는 ayaaya도 안되고, ayayeayaye도 안되는 것으로 이해하였다. 주어진 리스트 내 단어에서 발음할 수 있는 단어의 개수를 세어보자.(근데 코드 돌려보면 ayayeayaye 과 같은 경우 고려하지 않아도 통과됨;)
내가 생각한 방법은 3가지이다.
방법 1. 주어진 리스트 내 단어를 하나씩 검토하며 지워나가기, 반복될 시 다음 배열로 넘어가기.
방법 2. 미리 옹알이 할 수 있는 단어를 조합해 말할 수 있는 단어 리스트를 만들어놓은 후 일치하는지 체크하기.
방법 3. 미리 단어 반복 체크 후 2번이상 옹알이 단어가 들어가면 리스트에서 * 로 바꾸고 나중에 체크할 때 제외될 수 있도록 하기.
나는 방법 2을 택했다.
def solution(babbling):
count=0
cnt=0
for i in range(len(babbling)):#반복되는 단어 발견 시 *로 바꾸기
for j in ['aya','ye','woo','ma']:
count=babbling[i].count(j)
if count>1:
babbling[i]='*'
break
for word in babbling:#옹알이 단어에 해당되면 ' ' 으로 바꾸기
for i in ['aya','ye','woo','ma']:
word=word.replace(i,' ')
if word!='*' and len(word.strip())==0:#*이 아니면서 strip 처리한 후 길이가 0인 것들만 count
cnt+=1
return cnt
😱주의할 점😱
1. ayaaya 만 안되는 게 아니라 ayayeaya 같은 경우도 안됨.
근데 이 경우 따지지 않아도 프로그래머스에서 맞게 처리하고 있다; 왜지
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 네트워크 파이썬 (0) | 2024.03.18 |
|---|---|
| [프로그래머스] 타겟 넘버 파이썬 (0) | 2024.03.18 |
| [백준] 11724 파이썬 - 연결 요소의 개수 (0) | 2023.08.03 |
| [백준] 2606 파이썬 - 바이러스 (0) | 2023.08.03 |
| [백준] 1388 바닥 장식 - 파이썬 (0) | 2023.07.27 |