[문제]
가끔 몇몇 작가들은 강조를 하기 위해서 과도하게 느낌표를 남발한다. 느낌표와 물음표를 섞어서 놀라움을 표시하는 경우도 있다. 예를 들자면 "정말 그렇게 생각해요??!!".
출판을 하려면 이런 식의 과도한 느낌표와 물음표의 남발을 고쳐야 된다. 만약 느낌표가 연속으로 여러 개가 사용 되었다면 한 개의 느낌표로 바꾸고, 느낌표와 물음표가 섞여있다면 하나의 물음표로 바꿔야 한다. 이렇게 고쳐진 문자열을 리턴하시오.
풀이 1) - java
더보기
public class Solution{
public String solution(String document){
// replaceAll 함수로 원하는 문자로 문자열 치환
return document.replaceAll("[?!]*\\?[?!]*", "?").replaceAll("!+", "!");
}
}
풀이 2) - python
더보기
class Solution:
def solution(self, document):
document=list(document)
for idx, s in enumerate(document):
if s=="!":
if idx+1<len(document) and (document[idx+1]=="!" or document[idx+1]=="?"):
document[idx]=""
elif s=="?":
if idx+1<len(document) and (document[idx+1]=="!" or document[idx+1]=="?"):
document[idx]=""
document[idx+1]="?"
return "".join(document)
풀이 3) - javaScript
더보기
function solution(doc){
let res = doc;
while(has(res)){
res = a(res);
}
return res;
}
function a(doc){
doc = doc.replace('!!','!');
doc = doc.replace('!?','?');
doc = doc.replace('?!','?');
doc = doc.replace('??','?');
return doc;
}
function has(doc){
if(doc.includes('!!') || doc.includes('!?') || doc.includes('?!') || doc.includes('??')){
return true;
} else {
return false;
}
}
'workSpace > ALGORITHM' 카테고리의 다른 글
[올림픽 양초] (2) | 2021.02.02 |
---|---|
[참과 거짓] (0) | 2021.02.02 |
[막대] (0) | 2021.02.02 |
[기념품 행사] (0) | 2021.02.02 |
[가방 퀴즈] (0) | 2021.02.02 |