devFancy BE Developer

[Programmers] 118666. 성격 유형 검사하기

2023-01-29
devfancy

문제 링크

성능 요약

메모리: 77.5 MB, 시간: 0.58 ms

구분

코딩테스트 연습 > 2022 KAKAO TECH INTERNSHIP

Answer Code1(23.01.29)

import java.util.*;

class Solution {
  private Map<Character, Integer> typeMap = new HashMap();
  public String solution(String[] survey, int[] choices) {
    StringBuilder sb = new StringBuilder();
    int[] score = {0, 3, 2, 1, 0, 1, 2, 3};
    char[] types = {'R', 'T', 'C', 'F', 'J', 'M', 'A', 'N'};

    for (int i=0; i<types.length; i++)
      typeMap.put(types[i], 0);

    for (int i = 0; i < survey.length; i++) {
      int pos = 0;
      if (choices[i] >= 5) pos = 1;

      typeMap.put(survey[i].charAt(pos), typeMap.get(survey[i].charAt(pos))+score[choices[i]]);
    }

    for (int i=0; i<types.length; i+=2) {
      if (typeMap.get(types[i]) >= typeMap.get(types[i+1]))
        sb.append(types[i]);
      else
        sb.append(types[i+1]);
    }
    return sb.toString();
  }
}

Review

  • 2번 풀었지만, 매번 알고리즘이 생각나지 않았다.

  • 해당 문제는 이후에 추가적으로 풀면서 조금 더 나은 풀이 방식이 있다면 추가 업로드를 할 예정이다.


Comments

Index