나의 풀이
using System;
public class Solution {
public string solution(string[] id_pw, string[,] db) {
bool isCorrectId = false;
bool isCorrectPw = false;
string answer = string.Empty;
// id 검사 , Pw 검사
for(int i = 0; i < db.GetLength(0); i++){
if(id_pw[0] == db[i,0])
isCorrectId = true;
if(id_pw[1] == db[i,1])
isCorrectPw = true;
}
if(isCorrectId == true){
if(isCorrectPw == true)
answer = "login";
else
answer = "wrong pw";
}
else
answer = "fail";
return answer;
}
}
결과
반례를 통한 원인 분석
입력값 : ["id01" , "pw01"] , [["id01", "pw02"],["id02","pw01"]]
기댓값 : wrong pw
출력값 : login
해결
using System;
public class Solution {
public string solution(string[] id_pw, string[,] db) {
string answer = string.Empty;
// id 검사 , Pw 검사
for(int i = 0; i < db.GetLength(0); i++){
if(id_pw[0] == db[i,0])
{
if(id_pw[1] == db[i,1])
answer = "login";
else
answer = "wrong pw";
break;
}
else
answer = "fail";
}
return answer;
}
}
1. 의미 없는 bool값 및 관련식 제거
2. 아이디가 일치할 때 비밀번호 검사 하도록 수정
3. break; 을 통해 결과가 나왔을 때 for문을 빠져나와 fail로 값이 더럽혀지는 것을 방지
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][C# 풀이][Lv.1] 신고 결과 받기 (0) | 2023.11.17 |
---|---|
[프로그래머스][C# 풀이][Lv.0] 최빈값 구하기 (0) | 2023.11.16 |