반응형
내 코드 (틀림)
class Solution {
public String solution(String[] id_pw, String[][] db) {
String answer = "";
for(int i=0 ; i < db.length ; i++) {
if(db[i][0].equals(id_pw[0]) && db[i][1].equals(id_pw[1])) {
answer += "login";
break;
}
else if(db[i][0].equals(id_pw[0]) && !db[i][1].equals(id_pw[1])) {
answer += "wrong pw";
break;
}
else if(!db[i][0].equals(id_pw[0]) && !db[i][1].equals(id_pw[1])) {
answer += "fail";
break;
}
}
return answer;
}
}
나름 경우의 수를 제대로 구분한게 아닐까.. 싶었는데 틀려서
고민하다가 다른 분들 코드를 보기로 했다,,,
왜 틀렸나 봤더니 answer += 해서 해줄게 아니라 그냥 return "~~"해서 끝내면 됐고,
마지막 "fail"이 나오게 하는 거는 for문 밖에서 return "fail";
그냥 해주면 되는 거였다.
간단하게 하면 아래처럼 ..!
class Solution {
public String solution(String[] id_pw, String[][] db) {
String answer = "";
for(int i = 0; i < db.length; i++){
if(db[i][0].equals(id_pw[0])){
if(db[i][1].equals(id_pw[1])){
return "login";
}
return "wrong pw";
}
}
return "fail";
}
}
또 다른 방식의 정답도 있다!
import java.util.*;
class Solution {
public String solution(String[] id_pw, String[][] db) {
Map<String, String> dbMap = new HashMap<String, String>();
for(String[] strings : db) {
dbMap.put(strings[0], strings[1]);
}
if(dbMap.containsKey(id_pw[0])) {
if(dbMap.get(id_pw[0]).equals(id_pw[1])) {
return "login";
} else {
return "wrong pw";
}
} else {
return "fail";
}
}
}
Map을 사용하셨고, 이 Map안에 값을 갖고 있는지 (.containsKey 사용)를 확인해서
거기서 또 조건을 나눠줘서 return 하는 식으로 푸셨따,,
(참고)
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] 정수 내림차순으로 배치하기 (0) | 2023.02.18 |
---|---|
[프로그래머스/Lv. 0] 문자열 밀기 (0) | 2023.02.18 |
[프로그래머스/Lv. 0] 배열 회전시키기 (0) | 2023.02.17 |
[프로그래머스/Lv. 0] OX퀴즈 (0) | 2023.02.17 |
[프로그래머스/Lv. 0] 구슬을 나누는 경우의 수 (0) | 2023.02.17 |