관리 메뉴

솜씨좋은장씨

[BaekJoon] 2954번 : 창영이의 일기장 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 2954번 : 창영이의 일기장 (Python)

솜씨좋은장씨 2021. 8. 28. 00:14
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 창영이의 일기장 입니다.

 

2954번: 창영이의 일기장

창영이는 매일 밤 하루동안 일어난 일을 일기장에 남긴다. 일기장을 쓰면서 영어 공부도 같이 하기 위해서 영어로 일기를 쓴다. 또, 남들이 자신의 일기장을 보는 것을 막기 위해서 모음('a','e','i

www.acmicpc.net

👨🏻‍💻 문제 풀이

창영이는 남이 일기장을 보는 것을 막기 위해서 모음 ( 'a' , 'e', 'i', 'o', 'u' ) 다음에 'p'를 하나쓰고

그 뒤에 모음을 하나더 씁니다.

 

"kemija" 의 경우 ke 다음에 pe가 붙고 ja 뒤에 pa 가 붙어 "kepemipijapa" 가 됩니다.

 

우리는 "kepemipijapa" 를 "kemija" 로 바꾸어야합니다.

 

먼저 모음인지 아닌지 확인할때 활용하기 위해 모음을 다 모아서 하나의 문자열로 만들어줍니다.

vowels = "aeiou"

그리고 창영이의 일기장 속 문자열의 문자 하나하나를 접근하기 위한 인덱스 값을 하나 만들어줍니다.

idx = 0

그 다음에 while 반복문을 돌면서 문자를 하나씩 접근합니다.

while 반복문은 idx의 값이 문자열의 길이와 같아지면 종료합니다.

반복문이 돌아가면서 정답 문자열에 해당 문자를 추가하고 idx 값을 1씩 증가하도록 합니다.

만약 현재 보고있는 문자가 vowels에 속할 경우 즉 모음일 경우 2를 추가로 더 증가하도록 합니다.

👨🏻‍💻 코드 ( Solution )

def changyoungs_diary(string):
    answer = ""
    vowels = "aeiou"
    
    idx = 0
    
    while True:
        if idx >= len(string):
            break
        answer += string[idx]
        
        if string[idx] in vowels:
            idx += 2
        idx += 1
        
    return answer

if __name__ == "__main__":
    string = input()
    print(changyoungs_diary(string))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments