본문 바로가기
Blog/Education

99클럽 코테 스터디 1일차 TIL + Map, getOrDefault 메서드

by 코젼 2024. 3. 25.
728x90
반응형

프로그래머스

2022 KAKAO TECH INTERNSHIP > 성격 유형 검사하기 [Level.01]

https://school.programmers.co.kr/learn/courses/30/lessons/118666

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

자바 미들러(백준 실버, 프로그래머스 레벨2) 로 참여했다.
매일 백준으로만 풀다가 프로그래머스는 처음 사용해보았다.


  • 오늘의 학습 키워드
    • Map, HashMap
  • 공부한 내용 본인의 언어로 정리하기
    import java.util.HashMap;
    import java.util.Map;
    
    class Solution {
        public String solution(String[] survey, int[] choices) {
        Map<Character, Integer> score = new HashMap<>(); // 설문 항목별 점수 배열
    
        for (int i=0; i<survey.length; i++) {
          int value = choices[i];
          char ch;
          if (value > 0 && value < 4) { // 부정적인 답변인 경우
             ch = survey[i].charAt(0); // 첫 번째 요소를 key로 설정
            score.put(ch, score.getOrDefault(ch, 0) + 4 - value); // key의 value를 설정한다.
          } else if (value > 4) { // 긍정적인 답변인 경우
            ch = survey[i].charAt(1); // 두 번째 요소를 key로 설정
            score.put(ch, score.getOrDefault(ch, 0) + value - 4); // key의 value를 설정한다.
          }
        }
    
        return new StringBuilder() // 문자열 조합
            .append(score.getOrDefault('R', 0) >= score.getOrDefault('T', 0) ? 'R' : 'T')
            .append(score.getOrDefault('C', 0) >= score.getOrDefault('F', 0) ? 'C' : 'F')
            .append(score.getOrDefault('J', 0) >= score.getOrDefault('M', 0) ? 'J' : 'M')
            .append(score.getOrDefault('A', 0) >= score.getOrDefault('N', 0) ? 'A' : 'N')
            .toString();
        }
    }​
  • 오늘의 회고
    • 새로 배운 점
      • getOrDefault : 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환
    • 회고
      • Map 객체에 대해서 다시 공부할 수 있는 기회가 됐다.
        어느 정도 메서드를 알고 있으면 좀 더 빠르게 풀수 있었을텐데 아쉽다.. ㅜ_ㅜ
        처음에는 점수 하나씩 case를 다 정하려고 했었는데 문제가 풀리지 않아서 Map을 사용해보니 문제가 해결되었다!
        그리고 분석에 시간을 너무 많이 잡아 먹어서  문제 분석도 좀 빠르게 할 필요성을 느꼈다...

 


99클럽 1기를 수강하면서 작성한 글입니다.

https://99club.oopy.io/

 

99클럽-1기 모집 중

현직 개발자와 함께하는 코테 스터디

99club.oopy.io

 

728x90
반응형

댓글