Tree's 개발일기
[자바] 성격유형 검사하기 본문
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
비교적 쉬운 문제였지만, 아래 다른 분이 stream으로 푼 풀이를 보고 이렇게 풀어도 되겠구나 하고 기록하기 위해 포스팅한다.
<내 풀이>
배열에 각 문자를 저장하고, 각 문자별 점수는 map에 저장.
그리고, map의 값을 빼서 배열(c)의 문자로 담는다.
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer ="";
char[][] c = {{'R','T'},{'C','F'},{'J','M'},{'A','N'}};
Map<Character, Integer> mapp = new HashMap<>();
for (int i=0; i<survey.length; i++) {
if (choices[i]<4) {
char left = survey[i].charAt(0);
mapp.put(left,mapp.getOrDefault(left, 0)+4-choices[i]);
}
else if (choices[i]>4) {
char right = survey[i].charAt(1);
mapp.put(right,mapp.getOrDefault(right,0)+choices[i]-4);
}
}
for (int i=0; i<4; i++) {
answer+= (mapp.getOrDefault(c[i][0],0)>=mapp.getOrDefault(c[i][1],0) ? c[i][0] : c[i][1]);
}
return answer;
}
}
<다른 풀이>
getOrdefault()메소드와 stream을 사용해서도 풀 수 있구나라는 걸 저장하고 싶어서 기록.
stream은 알고리즘할 때 풀어보진 않았는데, stream에 조건문을 써서 이렇게 간단하게 풀 수 있었다.
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
Map<Character, Integer> mapp = new HashMap<>();
for (int i=0; i<survey.length; i++) {
if (choices[i]<4) {
char left = survey[i].charAt(0);
mapp.put(left,mapp.getOrDefault(left, 0)+4-choices[i]);
}
else if (choices[i]>4) {
char right = survey[i].charAt(1);
mapp.put(right,mapp.getOrDefault(right,0)+choices[i]-4);
}
}
return new StringBuilder()
.append(mapp.getOrDefault('R',0) >= mapp.getOrDefault('T',0) ? 'R':'T')
.append(mapp.getOrDefault('C',0) >= mapp.getOrDefault('F',0) ? 'C':'F')
.append(mapp.getOrDefault('J',0) >= mapp.getOrDefault('M',0) ? 'J':'M')
.append(mapp.getOrDefault('A',0) >= mapp.getOrDefault('N',0) ? 'A':'N')
.toString();
}
}728x90
'문제풀이 > 프로그래머스' 카테고리의 다른 글
| [자바] 거리두기 확인하기 (0) | 2023.07.27 |
|---|---|
| [자바] 숫자변환하기 (0) | 2023.07.24 |
| [자바] 달리기경주 (0) | 2023.07.22 |
| 미로 탈출 (0) | 2023.07.20 |
| [자바]신고 결과 받기 (0) | 2023.07.17 |
Comments