반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


지금 in between jobs 상태라서 취업 면접을 보고 있다.

어제 한 회사의 테크니컬 인터뷰를 봤다.

 

한 문제가 나왔는데 아래가 그 문제다.

 

 

String input을 reverse 하는데 letter 별로 하는게 아니라 단어별로 하라는 거다.

그래서 결과는 output과 같아야 한다는 것이다.

 

그 자리에서 나름대로 스크립팅를 해서 만들게 아래 코드다.

 

다행히도 원하는 결과물의 만들었다.

그래서 테크니컬 인터뷰는 통과 했다.

 

로직은 이전에 했던 String 의 letter들을 reverse 하는 것과 같다. 다면 단어를 reverse 해야 하는데 이건 letter 별이 아니라 단어별로 끊어서 배열에 넣으면 된다고 생각했다.

 

class HelloWorld { // 클래스 이름. 그냥 신경 안 쓰고 HelloWorld로 했다.
    public static void main(String[] args) { // 메인 함수
        String input = "Reverse words in a sentence."; // 입력값
        String output = "sentence. a in words Reverse"; // 원하는 출력 값
        
       System.out.println(reverseWords(input)); // reverseWords라는 메소드에 입력값을 보내고 그 결과를 프린트 한다.
    }
    
    public static String reverseWords(String input) { // reverseWords 메소드 입력값은 input 스트링 return은 스트링 타입이다.
        String returnValue; // return 할 스트링 변수를 만든다.
        
        String[] tempInput = input.split(" "); // input 을 단어별로 나눠서 스트링 배열에 담는다.
        int left = 0; 
        int right = tempInput.length -1;
        
        while(left < right) { // left가 right 보다 작을 때까지 while문을 돌린다.
            String temp = tempInput[left]; // 스프링에 배열 맨 왼쪽 값을 넣는다.
            tempInput[left++] = tempInput[right]; // 맨 왼쪽에 맨 오른쪽 단어를 넣는다.
            tempInput[right--] = temp; // 오른쪽에 맨 왼쪽 값을 넣는다.
        }
        
       returnValue = tempInput[0]; // returnValue에 배열의 맨 첫번째 값을 담는다.
        
        for(int i=1; i < tempInput.length; i++) { // 배열의 갯수보다 1 작은 만큼 for 문을 돌린다.
            returnValue = returnValue + " " + tempInput[i]; // 각 배열의 값들을 하나의 스트링 으로 만든다.
        }
        
        return returnValue; // 만든 스트링 을 리턴한다.
    }
}

 

결과 값은 오른쪽 Output 패널에 보이는 대로 원하는 값을 얻을 수 있었다.

다행히 문제를 제대로 풀 수 있어서 통과 했다.

반응형

Comment