본문 바로가기
이건 알아야지's/자료구조와 알고리즘

[알고리즘] 프로그래머스 : 로그인 성공? (kotlin)

by 하루디 2023. 12. 10.

 

문제

https://school.programmers.co.kr/learn/challenges/beginner?order=acceptance_desc&statuses=unsolved&languages=kotlin%2Cjava

 

코딩테스트 입문 | 프로그래머스 스쿨

코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요!

school.programmers.co.kr

 

✨알아야하는 개념

  • 코틀린 이중배열의 선언과 사용
  • 코틀린 배열

 

맞힌 코드

더보기
class Solution {
    fun solution(id_pw: Array<String>, db: Array<Array<String>>): String {
        var answer: String = "fail"
        
        val id = id_pw[0]
        val pw = id_pw[1]
        
        for((i,row) in db.withIndex()){
            for((j,column) in row.withIndex()){
                if(db[i][j] == id_pw[0]){
                    if(db[i][j+1] == id_pw[1]){
                        answer = "login"
                        break
                    }else{
                        answer = "wrong pw"
                        break
                    }

                }/*else{
                	answer = "fail"
                }*/

            }
        }
        
        return answer
    }
}

 

후기 

계속 테스트 1번만 실패해서 프로그래머스의 질문하기에 들어갔는데, 다른 사람이 이미 질문해놓은 것이 있었다. 정답에 우선순위가 있기때문에 오답이 나오는 것이라고 했다. 내가 짠 코드에서 만약 동일한 아이디가 두번 db에 있을 경우 문제가 생기는 것. 그래서  else문을 처음에 넣었던 위치에서 주석으로 제거하고 answer의 초기값을 "fail"로 설정해서 문제를 해결했다. 

 

 

Refs

아래 블로그에서 코틀린 이중배열의 개념을 확인하고 문제를 풀었다.