문제 자체는 들어오는 문자열의 파싱이나 검색을 할수 있는지 묻는 문제로 보인다.

입력형식은 고정되어있기에 split 을 통해 파싱해서 2개냐 3개냐로도 판단할수있고

처음에검색을통해 종류를 판별후 서브스트링으로 만들어 풀수도 있겠다 싶다.

 

아래 소스에서는 enum으로 종류를 넣고 HashMap을통해 닉네임을 덮어쓰기를 하도록했다

import java.util.ArrayList;
import java.util.HashMap;

public class Solution {
	enum recordType { Enter,Leave,Change,ERROR }
	
	public String[] solution(String[] record) {
		
		HashMap<String, String> usersMap = new HashMap<>();
		ArrayList<String> midResult = new ArrayList<>();
		
		String[] answer; // 뒤에서 초기화 해주자
		
		for(int i = 0 ; i < record.length ; i++) {
			//회원별 저장
			String msg = record[i];
			String[] sub = msg.split(" ");
			recordType type;
			
			if(sub.length >= 2) {
				String key = "";
				type = recordType.valueOf(sub[0]);
				key = sub[1];
				if(type != recordType.Leave && type != recordType.ERROR) {
					if(sub.length > 2) {
						String name = sub[2];
						usersMap.put(key, name);
					}
				}
				if(type != recordType.Change) {
					midResult.add(key + ";" + type.toString());
				}
			} else {
				System.out.println("ERROR msg parse");			
				return new String[] {};
			}
		}
		
		
		answer = new String[midResult.size()];
		
		for (int i = 0; i < midResult.size(); i++) {
			String mid = midResult.get(i);
			String[] sub = mid.split(";");
			String name = usersMap.get(sub[0]) != null ? usersMap.get(sub[0]) : "";
			recordType type = recordType.valueOf(sub[1]) != null ? recordType.valueOf(sub[1]): recordType.ERROR;
			
			answer[i] = name + "님이";
			
			switch (type) {
			case Enter:
				answer[i] += " 들어왔습니다.";
				break;
			case Leave:
				answer[i] += " 나갔습니다.";
				break;
			case Change:case ERROR:default:
				answer[i] += "";
				break;
			}
		}
		return answer;
	}
}

http://tech.kakao.com/2018/09/21/kakao-blind-recruitment-for2019-round-1/

 

2019 카카오 신입 공채 1차 코딩 테스트 문제 해설

작년에 이어 올해도 블라인드 전형으로 카카오 개발 신입 공채가 시작되었습니다! 그 첫 번째 관문으로 1차 온라인 코딩 테스트가 지난 9월 15일(토) 오후 2시부터 7시까지 5시간 동안 치러졌는데요. 지원자분들 만큼이나 준비위원들도 테스트가 문제없이, 공정하게 치러질 수 있도록 많은 준비를 했고 두근 거리는 마음으로 끝까지 온라인 테스트를 모니터링했답니다. 문제는 작년과 비슷하게 구현 문제 위주로 쉬운 난이도에서 어려운 난이도 순으로 풀 수 있도록 차례대

tech.kakao.com

 

+ Recent posts