https://level.goorm.io/exam/49069/%EC%B6%9C%EC%84%9D%EB%B6%80/quiz/1
구름LEVEL
코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이
level.goorm.io
Zenon은 자신의 이름에 대해 불만이 많다. 학교에서 출석을 부를 때 이름순으로 부르기 때문에, 항상 맨 마지막에 불리기 때문이다. 비단 Zenon뿐만 아니라, 이름을 일찍 불리고 싶어하는 학생도 많을 것으로 예상한 정부는 자신의 이름을 고칠 수 있는 이벤트를 개최했다.
정부가 제안하는 이벤트의 내용은 다음과 같다. 자신의 이름에서 최대 한 글자를 지워서 개명을 신청하면 그 이름으로 바꿔주겠다는 것이다. 물론 현재 자신의 이름이 마음에 들면 바꾸지 않아도 된다. 이러한 이벤트를 열자, 평소 자신의 이름에 불만이 많았던 학생들이 개명 신청을 넣으려고 달려들었다. 이름이 짧은 학생은 무슨 글자를 지워야 사전순으로 가장 앞서는지를 알고 있어 이벤트가 열리자마자 신청할 수 있었지만, 이름이 긴 학생은 무슨 글자를 지우면 좋을지 알 수가 없었다.
이 이벤트가 종료되기까지 시간이 얼마 남지 않았다! 자신의 이름을 어떻게 개명해야 좋을지 모르는 학생들을 위해서 최선의 방법으로 개명을 도와주는 프로그램을 만들어주자.
입력
첫째 줄에 학생의 이름을 나타내는 길이 2 이상 300,000 이하의 문자열이 주어진다.
학생의 이름은 알파벳 소문자로만 구성되어 있다.
출력
최대 한 글자를 지움으로써 사전순으로 가장 앞서는 최적의 개명 결과를 출력한다.
현재[i]와 다음[i+1]과 비교했을 때,
현재께 빠른 사전순서라면 result에 넣기
현재께 더 느린 사전순이라면 [i]를 건너뛰고 [i]뒤에꺼부터 잘라서 답을 만들면 된다.
line = list(input())
n = len(line)
result = []
for i in range(n-1) :
#앞에 있는게 더 사전 앞에 있는 경우 배열에 추가(제거하지 않아도 유리하다)
if line[i] <= line[i+1] :
result.append(line[i])
continue
#앞에 있는게 뒤에있는것보다 더 사진 뒤에있는 영어
if line[i] > line[i+1] :
#i다음에 있는거 그대로 붙여넣어주자
for j in range(i+1, n) :
result.append(line[j])
break #현재께 뒤에꺼보다 느린 경우 그냥 중단시켜버림
print("".join(result))
line = list(input())
n = len(line)
result = []
for i in range(n-1) :
#앞에 있는게 더 사전 앞에 있는 경우 배열에 추가(제거하지 않아도 유리하다)
if line[i] <= line[i+1] :
result.append(line[i])
continue
#앞에 있는게 뒤에있는것보다 더 사진 뒤에있는 영어
if line[i] > line[i+1] :
#i다음에 있는거 그대로 붙여넣어주자
result += line[i+1:]
break #현재께 뒤에꺼보다 느린 경우 그냥 중단시켜버림
print("".join(result))
'코테풀이 > 문자열' 카테고리의 다른 글
[프로그래머스] 이상한 문자 만들기 (1) | 2023.10.22 |
---|---|
[프로그래머스] 숫자 문자열과 영단어 (0) | 2023.10.21 |
[백준 | 실버3] 17413: 단어뒤짚기(문자열) (0) | 2022.08.30 |
[백준 | 실버2] 14426번: 접두사 찾기(문자열, 브루트포스) (0) | 2022.08.25 |
[파이썬] 공통 접두사를 찾아라(문자열, 접두사) (0) | 2022.08.25 |