반응형
내 코드 (틀림)
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";
}
}
또 다른 방식의 정답도 있다!
프로그래머스 코딩테스트 입문 로그인 성공? [JAVA] - 22년 10월 16일
velog.io
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 하는 식으로 푸셨따,,
(참고)
자바 Map 사용법부터 출력까지
일단 Map의 특징을 먼저 알아보자면 Map은 선언 시 로 값을 넣는다 Key와 Value는 한 쌍으로 Key로 식별하고 Value에 사용할 값을 넣는 식이다 여기서 Key는 중복이 불가능하고 동일한 Key 값으로 값을 넣
wakestand.tistory.com
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/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 |