프로그래밍 면접 책3 단어 뒤집기 문제- 한 문자열에 들어있는 단어의 순서를 뒤집는 함수를 작성하라. 예를 들어 "Do or do not. there is no try." 는 "try. no is there not. do or Do" 로 변환되어야 한다. 모든 단어는 스페이스로 구분되고 문장부호를 글자와 똑같은 것으로 간주한다. 문제를 보고 split()함수를 이용해서 space를 기준으로 단어를 구분해서 String 배열에 넣은뒤 reverse해주면 될 것 같다고 생각했다. ReverseWord.java1234567891011121314151617public class ReverseWord { String solution(String str){ String answer=""; String []splitWord=str.split(" ").. 2018. 12. 5. 특정 문자의 제거 문제- 문자열에서 문자를 효율적으로 삭제하는 함수를 작성하라. 함수 원형은 다음과 같다String removeChars(String str, String remove); remove라는 인자로 전달된 문자열에 있는 모든 문자를 str이라는 문자열에서 삭제한다.예를 들어 str이 "Battle of the Vowels: Hawaii vs. Grozny"로 주어지고 remove가 "aeiou"로 주어진다면 이 함수에서 str에서 str을 "Bttl f th Vwls: Hw vs. Grzny"로 변환시켜야 한다. 자신이 함수를 설계한 방식에 대해 합당한 근거를 제시하고 풀이의 효율에 대해 논하라. 처음 문제를 보고 앞에 문제(반복되지 않는 첫 번째 문자 찾기)에서 썼던 해시를 이용해서 풀어보려고 만지작 거리다.. 2018. 12. 5. 반복되지 않는 첫 번째 문자 찾기 문제- 문자열에서 처음으로 반복되지 않는 문자를 효율적으로 찾아내는 함수를 작성하라. 예를 들어 "total"에서 처음으로 등장하는 반복되지 않는 문자는 'o'이며, "teeter"에서 처음으로 등장하는 반복되지 않는 문자는 'r'이다. 작성한 알고리즘의 효율에 대해 논하라 간단하게 푸는 것은 반복분을 두번 돌려 검사하는 방식인데 이 방식은 최악의 경우 시간 복잡도가 이므로 효율적이지 못하다고 할 수 있다.그래서 생각했던게 해시맵을 사용하면 시간 복잡도에 유리하게 풀 수 있다고 생각했다.(풀다가 생각난건데 그냥 HashMap을 쓰면 순서가 뒤죽박죽이 되기 때문에 LinkedHashMap을 써서 순서를 유지하는 방식으로 풀었다.) findChar.java12345678910111213141516171819.. 2018. 12. 3. 이전 1 다음