본문 바로가기
프로그래밍 면접 책

단어 뒤집기

by AsCE_hyunseung 2018. 12. 5.

문제

- 한 문자열에 들어있는 단어의 순서를 뒤집는 함수를 작성하라. 예를 들어 "Do or do not. there is no try." 는 "try. no is there not. do or Do" 로 변환되어야 한다. 모든 단어는 스페이스로 구분되고 문장부호를 글자와 똑같은 것으로 간주한다.


문제를 보고 split()함수를 이용해서 space를 기준으로 단어를 구분해서 String 배열에 넣은뒤 reverse해주면 될 것 같다고 생각했다.


ReverseWord.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class ReverseWord {
    String solution(String str){
        String answer="";
        String []splitWord=str.split(" ");//공백 기준으로 단어 자르기
 
        answer = getAnswer(answer, splitWord);
 
        return answer.substring(0,answer.length()-1);//맨 뒤의 공백 제거
    }
 
    private String getAnswer(String answer, String[] splitWord) {
        for(int i=splitWord.length-1;i>=0;i--){//역순
            answer=answer.concat(splitWord[i]+" ");
        }
        return answer;
    }
}
cs

ReverseWordTest.java

1
2
3
4
5
6
7
8
9
10
11
import org.junit.Test;
import static org.junit.Assert.*;
 
public class ReverseWordTest {
    ReverseWord r=new ReverseWord();
    
    @Test
    public void 테스트_결과() {
        assertEquals("try. no is there not. do or Do",r.solution("Do or do not. there is no try."));
    }
}
cs


'프로그래밍 면접 책' 카테고리의 다른 글

특정 문자의 제거  (0) 2018.12.05
반복되지 않는 첫 번째 문자 찾기  (0) 2018.12.03