문제
- 한 문자열에 들어있는 단어의 순서를 뒤집는 함수를 작성하라. 예를 들어 "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 |