๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ๋กœ๊ทธ์ธ ์„ฑ๊ณต?

by hyebin (Helia) 2023. 1. 5.
๋ฐ˜์‘ํ˜•

๋กœ๊ทธ์ธ ์„ฑ๊ณต?

๋ฌธ์ œ ์„ค๋ช…

๋จธ์“ฑ์ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์— ๋กœ๊ทธ์ธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋จธ์“ฑ์ด๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด id_pw์™€ ํšŒ์›๋“ค์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด db๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ๊ทธ์ธ ์„ฑ๊ณต, ์‹คํŒจ์— ๋”ฐ๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

  • ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ํ•˜๋Š” ํšŒ์›์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฉด "login"์„ return ํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ์ธ์ด ์‹คํŒจํ–ˆ์„ ๋•Œ ์•„์ด๋””๊ฐ€ ์ผ์น˜ํ•˜๋Š” ํšŒ์›์ด ์—†๋‹ค๋ฉด “fail”๋ฅผ, ์•„์ด๋””๋Š” ์ผ์น˜ํ•˜์ง€๋งŒ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ํšŒ์›์ด ์—†๋‹ค๋ฉด “wrong pw”๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ

  • ํšŒ์›๋“ค์˜ ์•„์ด๋””๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ํšŒ์›๋“ค์˜ ์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํšŒ์›๋“ค์˜ ํŒจ์Šค์›Œ๋“œ๋Š” ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ํšŒ์›๋“ค์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๊ฐ™์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์•„์ด๋””๋Š” ๊ฐ™์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • id_pw์˜ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.
  • id_pw์™€ db์˜ ์›์†Œ๋Š” [์•„์ด๋””, ํŒจ์Šค์›Œ๋“œ] ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
  • 1 ≤ ์•„์ด๋””์˜ ๊ธธ์ด ≤ 15
  • 1 ≤ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ๊ธธ์ด ≤ 6
  • 1 ≤ db์˜ ๊ธธ์ด ≤ 10
  • db์˜ ์›์†Œ์˜ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

id_pw db result
["meosseugi", "1234"] [["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]] "login"
["programmer01", "15789"] [["programmer02", "111111"], ["programmer00", "134"], 
["programmer01", "1145"]]
"wrong pw"
["rabbit04", "98761"] [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]] "fail"

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • db์— ๊ฐ™์€ ์ •๋ณด์˜ ๊ณ„์ •์ด ์žˆ์œผ๋ฏ€๋กœ "login"์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • db์— ์•„์ด๋””๋Š” ๊ฐ™์ง€๋งŒ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๊ณ„์ •์ด ์žˆ์œผ๋ฏ€๋กœ "wrong pw"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • db์— ์•„์ด๋””๊ฐ€ ๋งž๋Š” ๊ณ„์ •์ด ์—†์œผ๋ฏ€๋กœ "fail"์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ id_pw:[String], _ db:[[String]]) -> String {
    var dic = [String: String]()
    for i in db{
        dic[i[0]] = i[1]
    }
    return dic[id_pw[0]] != nil ? (dic[id_pw[0]]! == id_pw[1] ? "login" : "wrong pw") : "fail"
}
db์— ๋‹ด๊ฒจ์žˆ๋Š” ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •๋ณด๋ฅผ ๋”•์…”๋„ˆ๋ฆฌํ˜•์œผ๋กœ ์ €์žฅํ•œ๋‹ค.
๋”•์…”๋„ˆ๋ฆฌ์—์„œ ์ž…๋ ฅ๋ฐ›์€ ์•„์ด๋””๋ฅผ ํ‚ค๋กœ ๊ฐ–๋Š” ๊ฐ’์ด ์—†๋‹ค๋ฉด "fail"์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์žˆ๋‹ค๋ฉด, ๊ทธ ๊ฐ’์ด ์ž…๋ ฅ๋ฐ›์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ž‘ ๊ฐ™์œผ๋ฉด "login", ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด "wrong pw"๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•