📝 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔥 시도해본 접근 방식
일단 문제에서 말하는 사전이란 것을 구현하여 탐색하기로 하였다.
Map 을 선언하여 key는 단어, value는 인덱스를 갖도록 구성한다.
단순하게 문자별로 반복문을 돌려서 사전을 만들었는데 이렇게 하다보니 5중 반복문이 되어서 시간초과가 발생하겠거니 하고 일단 제출하였는데 통과해서 당황스러웠다.
✨ 성공 코드
import java.util.HashMap;
import java.util.Map;
class Solution {
public int solution(String word) {
String[] d = new String[]{"A", "E", "I", "O", "U"};
Map<String, Integer> map = new HashMap<>();
int order = 1;
for (int i = 0; i < d.length; i++) {
map.put(d[i], order++);
for (int j = 0; j < d.length; j++) {
map.put(d[i] + d[j], order++);
for (int k = 0; k < d.length; k++) {
map.put(d[i] + d[j] + d[k], order++);
for (int l = 0; l < d.length; l++) {
map.put(d[i] + d[j] + d[k] + d[l], order++);
for (int m = 0; m < d.length; m++) {
map.put(d[i] + d[j] + d[k] + d[l] + d[m], order++);
}
}
}
}
}
return map.get(word);
}
}
이 문제는 다른 효율적인 방법을 추가로 공부하고 다른 사람의 풀이도 좀 봐야겠다.
더보기
import java.lang.Math;
class Solution {
public int solution(String word) {
int answer = word.length();
int pos;
for(pos = 0; pos < word.length(); pos ++){
char c = word.charAt(pos);
if(c=='A') continue;
int temp = 0;
for(int i = 0; i <= 4-pos; i++){
temp += Math.pow(5,i);
}
answer += temp*val(c);
}
return answer;
}
public int val(char c){
if(c=='E') return 1;
else if(c=='I') return 2;
else if(c=='O') return 3;
else return 4;
}
}
'스터디 > 99클럽 코테 스터디 TIL' 카테고리의 다른 글
99클럽 코테 스터디 18일차 단지번호붙이기 (0) | 2024.08.09 |
---|---|
99클럽 코테 스터디 17일차 촌수계산 [작성중] (0) | 2024.08.08 |
99클럽 코테 스터디 15일차 prefix-and-suffix-search (0) | 2024.08.06 |
99클럽 코테 스터디 14일차 TIL 숫자 카드2 (0) | 2024.08.04 |
99클럽 코테 스터디 13일차 TIL 숫자 카드 (0) | 2024.08.04 |