반응형
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제분석 :
카카오의 Levle1 = 쉬운데 엄청난 노가다를 시킨..
문제 설명 길이부터 엄청 남다르다..
문제를 요약하자면 MBTI 마냥 4개의 지표가있다.
1번지표 RT
2번지표 CF
3번지표 JM
4번지표 AN
여기서 R T 중 점수가 더 높은쪽이 R 지향인지 T 지향인지 출력하면된다. 2~4번도 마찬가지
근데 지표는 RT가 TR 처럼 뒤집히는 경우도있다.
점수를 얻는방법은 Scores[] 배열에 따른다.
1~ 3 점수는 첫번째알파벳에 점수추가를 4는 아무것도 없고 5~7은 두번째 알파벳 점수 추가를한다.
1: 첫번째 알파벳+3
2: 첫번째 알파벳 +2
3: 첫번째 알파벳 +1
4: X
5 두번째 알파벳 +1
6 두번째 알파벳 +2
7 두번째 알파벳+3
문제는 쉽지만 , 이 복잡한 조건과 케이스를 잘 정리정돈하면 된다.
전체 풀이:
그래서 필자의 코드는 다음과 같다. 짜다보니 좀 무식한 방법이 되버린것같지만..
무식할수록 읽기 편하긴 하니깐 ..
이것보다 더욱 깔끔한 코드를 이 글을 읽는 독자분들이라면 짤 수 있을것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
import java.util.*;
class Solution {
public String solution(String[] survey, int[] choices) {
String answer = "";
int[] scores = new int[]{0,3,2,1,0,1,2,3};
Map<Character,Integer> map = new HashMap<>();
//데이터 집어넣기
for(int i=0;i<choices.length;i++){
String str= survey[i];
int score = scores[choices[i]];
char c =survey[i].charAt(0);
char c2=survey[i].charAt(1);
if(choices[i]<4){
if(!map.containsKey(c2)){
map.put(c2,0);
}
if(map.containsKey(c)){
map.put(c,map.get(c)+score);
continue;
}
map.put(c,score);
}
else if(choices[i]>4){
if(!map.containsKey(c)){
map.put(c,0);
}
if(map.containsKey(c2)){
map.put(c2,map.get(c2)+score);
continue;
}
map.put(c2,score);
}
else{
if(map.containsKey(c)){
continue;
}
map.put(c,0);
if(map.containsKey(c2)){
continue;
}
map.put(c2,0);
}
}
//결과 정리정돈
if(map.get('R')==null||map.get('R')>=map.get('T')){
answer+="R";
}
else{
answer+="T";
}
if(map.get('C')==null||map.get('C')>=map.get('F')){
answer+="C";
}
else{
answer+="F";
}
if(map.get('J')==null||map.get('J')>=map.get('M')){
answer+="J";
}
else{
answer+="M";
}
if(map.get('A')==null||map.get('A')>=map.get('N')){
answer+="A";
}
else{
answer+="N";
}
return answer;
}
}
|
cs |
반응형
'알고리즘 > 프로그래머스 Level1' 카테고리의 다른 글
[프로그래머스, Java] Level0: 겹치는 선분의 길이 (0) | 2022.12.08 |
---|---|
프로그래머스 [JAVA] Level1: 숫자 짝꿍 (1) | 2022.10.08 |
[프로그래머스,자바] Level1: 신고 결과 받기 (1) | 2022.01.18 |
[프로그래머스,Java] Level1: 나머지가 1이되는 수 찾기 (0) | 2021.10.14 |
[프로그래머스,자바] Level1: 최소직사각형 (위클리 8주차) (2) | 2021.10.03 |