로그인 성공?

Heeeoh·2023년 1월 16일
0

프로그래머스

목록 보기
2/26
post-thumbnail

🔍문제 분석

✔️ 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120883

📖 문제


id,pw와 db 값 확인 및 결과 출력

🔅 문제풀이

처음시도

  • 쉬운 문제라고 생각하고 막 풀다가 큰코 다쳤다.
class Solution {
    public String solution(String[] id_pw, String[][] db) {
        String answer = "";
        

        for(int i = 0; i < db.length; i++){
            
            if(id_pw[0].equals(db[i][0])){    
                if(id_pw[1].equals(db[i][1])){
                    answer = "login";
                    
                }else{
                    answer = "wrong pw";
                
                }
    
                

            }else{
            	answer = "fail";
            }
        }
        return "fail";

    }
}

이중 배열이 순회하면서 값이 계속 중첩 된다는걸 생각하지 못했다.
예를 들면 [abc,123]이 id_pw 면 db는 [[abc,321],[asd,122]]에서
첫번째 순회시 "wrong pw" 가 answer에 초기화되고
두번째 순회시 id pw에 맞는 값이 없어 "fail"로 초기화된다

class Solution {
    public String solution(String[] id_pw, String[][] db) {
        String answer = "";
        

        for(int i = 0; i < db.length; i++){
            
            if(id_pw[0].equals(db[i][0])){    
                if(id_pw[1].equals(db[i][1])){
                    return "login";
                    
                }else{
                    return "wrong pw";
                
                }
    
                

            }
        }
        return "fail";

    }
}

값 나오자마자 바로바로 return하는게 맞았다..


❗ 오답노트 / 필요한 지식

  1. 반복문시 리턴값이 바뀔 가능성이 있다면 값나온 순간에 리턴하자
  2. 생각해보고 풀자!

profile
열심히 살자

0개의 댓글