1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120883
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 정답
구현검증
fun main(){
val db:Array<Array<String>> = arrayOf(arrayOf("rardss","123"),
arrayOf("yyoom","1234"),
arrayOf("meosseugi","1234"))
val id_pw: Array<String> = arrayOf("yyoom","1234")
var result = "fail"
for (i in db){
if (i[0] == id_pw[0]){
if (i[1] == id_pw[1]){
result = "login"
break
}else{
result = "worng pw"
break
}
}}
println(result)
}
정답
class Solution {
fun solution(id_pw: Array<String>, db: Array<Array<String>>): String {
var answer: String = "fail"
for(i in db){
if(i[0] == id_pw[0]){
if(i[1] == id_pw[1]){
answer = "login"
break
}else{
answer = "wrong pw"
break
}
}
}
return answer
}
}
3) 고찰
최초 아이디어에서는 Strig에 값을 주지 않고
class Solution {
fun solution(id_pw: Array<String>, db: Array<Array<String>>): String {
var answer: String = ""
for(i in db){
if(i[0] == id_pw[0]){
if(i[1] == id_pw[1]){
answer = "login"
break
}else{
answer = "wrong pw"
break
}
}else{
answer = fail
break
}
}
return answer
}
}
로 작성하여 코드가 fail이 나왔다.
id와 pw를 탐색하는 와중에 if문을 탈출하고 (break)하고도 또 for문이 돌아서 else를 거친 것이다.
이를 수정하기 위해 초기 answer = "fail"로 주었고 esle문을 삭제했다.
정말 기초적인 실수였으니 바로 고칠 수 있었지만, 앞으로 이런 결과를 안나오게 설계를 하고 시작하는게 좋을 것 같다.
떠오르는대로 코드를 작성한 결과값이 좋지 않았으며 구상된 코드의 결과값을 한 번 복기해볼 필요가 있는 것 같다.
'개발노트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 캐릭터의 좌표 코틀린 (0) | 2023.08.08 |
---|---|
프로그래머스 n의 배수 고르기 코틀린 (0) | 2023.08.08 |
프로그래머스 연속된 수의 합 코틀린 (0) | 2023.08.07 |
프로그래머스 최대공약수와 최소공배수 코틀린 (0) | 2023.08.04 |
프로그래머스 부족한 금액 계산하기 코틀린 (0) | 2023.08.04 |