โ ๋ฌธ์ & ์ ์ฝ์กฐ๊ฑด
โ ์ ์ถ๋ ฅ ์
โ ํ์ด ๊ณผ์
์ผ๋จ ๋ ๊ฐ์ ๋ฐฐ์ด id_pw, db์ for ๋ฌธ์ ๋๋ ค์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์๊ฐ ํด ๋ดค๋ค. id_pw๋ 1์ฐจ์ ๋ฐฐ์ด, db๋ 2์ฐจ์ ๋ฐฐ์ด์ด๋ผ์ id_pw์ 0๋ฒ ์ธ๋ฑ์ค๊ฐ ๋ก๊ทธ์ธ ์๋ํ ์ฌ์ฉ์์ id๊ฐ์ด ๋๊ณ 1๋ฒ ์ธ๋ฑ์ค๊ฐ ํจ์ค์๋์ด๋ค. ๋ฐ๋ฉด db๋ 2์ฐจ์ ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ [ ] [ ] ํ์์ผ๋ก ์ ๊ทผ์ ํด ์ค์ผ ํ๋ค. [i][0] ์ด ์์ด๋๊ฐ์ด๊ณ [i][1]์ด ํจ์ค์๋ ๊ฐ์ด๋ค.
case 1 : id_pw์ ์์ด๋๊ฐ์ด db[i][0]๊ณผ ๊ฐ๊ณ id_pw์ ํจ์ค์๋ ๊ฐ์ด db[i][1] ์ด๋ ๊ฐ์ผ๋ฉด answer์ "login" ๊ฐ ๋ฃ๊ธฐ
case2 : id_pw์ ์์ด๋๊ฐ์ด db[i][0]๊ณผ ๊ฐ์ผ๋ id_pw์ ํจ์ค์๋ ๊ฐ์ด db[i][1] ์ด๋ ๊ฐ์ง ์์ผ๋ฉด answer์ "wrong pw" ๋์
case3 : id_pw์ ์์ด๋๊ฐ์ด db[i][0]๊ณผ ๊ฐ์ง ์๊ณ id_pw์ ํจ์ค์๋ ๊ฐ์ด db[i][1] ์ด๋ ๊ฐ์ง ์์ผ๋ฉด "fail"
์ฒซ๋ฒ์งธ๋ก ์ ์ถํ ์ฝ๋ (ํ๋ฆฐ ์ฝ๋)
import java.util.HashMap;
import java.util.Map;
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]) && id_pw[1].equals(db[i][1])) {
answer = "login";
break;
} else if(id_pw[0].equals(db[i][0]) && id_pw[1] != db[i][1]) {
// ์คํจํ ์ด์ : ๋ฌธ์์ด ๋น๊ตํ ๋๋ != ์ด๋ == ์ฐ์ง ์์
answer = "wrong pw";
break;
} else {
answer = "fail"; // answer ๋ณ์์ ๋น ๋ฌธ์์ด ๋์ fail์ ๋ฃ์ผ๋ฉด ์ข๋ค
}
}
return answer;
}
}
๋๋ฒ์งธ๋ก ์ ์ถํ ์ฝ๋ (๋ง๋ ์ฝ๋)
์์ ๋ด์ฉ
- ๋น๋ฐ๋ฒํธ ๋น๊ต: id_pw[1] != db[i][1]๋ฅผ !id_pw[1].equals(db[i][1])๋ก ๋ณ๊ฒฝ
- "fail" ์ฒ๋ฆฌ: ๊ธฐ๋ณธ ๊ฐ์ "fail"๋ก ์ค์ ํ๊ณ , ๋ก๊ทธ์ธ์ด๋ ๋น๋ฐ๋ฒํธ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ์๋ง ๊ทธ ๊ฐ์ ์ ์งํ๋ ๊ฒ์ด ๊ฐ๊ฒฐ
๋น๋ฐ๋ฒํธ ๋น๊ต์์ != ์ฐ์ฐ์๋ ๋ฌธ์์ด ๋น๊ต์ ์ ํฉํ์ง ์๋๋ค๋ ๊ฑด ์์๋๋ฐ .equals์ ๋ถ์ ํํ์ ๋ชฐ๋๋ค. ๋ฌธ์์ด์ ๋น๊ตํ ๋๋ equals() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ๊ฐ์ง ์๋ค๋ ํํ์ ํ ๋๋ !๋น๊ตํ ๊ฐ1.equals(๋น๊ตํ ๊ฐ2) ๋ํ, ์์์ String answer ๋ณ์ ์ ์ธ์ "fail"์ ๋ํดํธ๋ก ๋ฃ์ด ๋์ผ๋ฉด else๊ตฌ๋ฌธ ์ํ ์ํด๋ ๋จ.
class Solution {
public String solution(String[] id_pw, String[][] db) {
String answer = "fail"; // ๊ธฐ๋ณธ ๊ฐ์ "fail"๋ก ์ค์
for (int i = 0; i < db.length; i++) {
if (id_pw[0].equals(db[i][0]) && id_pw[1].equals(db[i][1])) {
return "login"; // ๋ก๊ทธ์ธ ์ฑ๊ณต
} else if (id_pw[0].equals(db[i][0]) && !id_pw[1].equals(db[i][1])) {
answer = "wrong pw"; // ๋น๋ฐ๋ฒํธ ์ค๋ฅ
}
// ์ฌ์ฉ์ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ๋ "fail"๋ก ๊ธฐ๋ณธ ์ค์ ์ด ์ ์ง
}
return answer; // ์ต์ข
๊ฒฐ๊ณผ ๋ฐํ
}
}
HashMap ์ฌ์ฉํ ์ฝ๋
์ถ๊ฐ๋ก ๋ค๋ฅธ ๋ถ์ด ์์ฑํ๊ฑด๋ฐ ์ ์ด ์ฝ๋ ์์ด์ ๊ฐ์ ธ์๋ค
Hash map์ key, value ๊ฐ์ผ๋ก ์กฐํํ๋ ์ฝ๋
import java.util.HashMap; // HashMap ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด import
import java.util.Map; // Map ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด import
class Solution {
public String solution(String[] id_pw, String[][] db) {
// ๋ก๊ทธ์ธ ์๋์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋ณ์ ์ด๊ธฐํ
String answer = "";
// ์ฌ์ฉ์ ID์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฅํ HashMap ์์ฑ
Map<String, String> hashMap = new HashMap<String, String>();
// ๋ฐ์ดํฐ๋ฒ ์ด์ค(db)์ ๋ชจ๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ HashMap์ ์ ์ฅ
for (String[] strings : db) {
hashMap.put(strings[0], strings[1]); // strings[0]์ ID, strings[1]์ ๋น๋ฐ๋ฒํธ
}
// ์
๋ ฅ๋ฐ์ ID๊ฐ HashMap์ ์กด์ฌํ๋์ง ํ์ธ
if (hashMap.containsKey(id_pw[0])) {
// ID๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ, ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธ
if (hashMap.get(id_pw[0]).equals(id_pw[1])) {
// ๋น๋ฐ๋ฒํธ๊ฐ ๋ง์ผ๋ฉด "login" ๋ฐํ
return "login";
} else {
// ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ฆฌ๋ฉด "wrong pw" ๋ฐํ
return "wrong pw";
}
} else {
// ID๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด "fail" ๋ฐํ
return "fail";
}
}
}
HashMap์ ์๋ฐ์์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค ํ๋๋ก, ํค-๊ฐ ์์ ์ ์ฅํ๋ ํด์ ํ ์ด๋ธ ๊ธฐ๋ฐ์ ๋งต(Map)์ด๋ค
ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ํด์ ๊ฐ์ผ๋ก ๋ณํํ ํ, ํด์ ๊ฐ์ ํตํด์ ๊ฐ์ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ฏ๋ก ์๋๊ฐ ๋น ๋ฅด๋ค
HashMap ๊ด๋ จ ๋ฉ์๋
- put(key, value): ์ง์ ํ ํค์ ๊ฐ์ ๋งต์ ์ถ๊ฐ
- get(key): ์ง์ ํ ํค์ ํด๋นํ๋ ๊ฐ์ ๋ฐํ (ํค๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด null์ ๋ฐํ)
- remove(key): ์ง์ ํ ํค์ ๊ทธ์ ํด๋นํ๋ ๊ฐ์ ์ ๊ฑฐ
- containsKey(key): ํน์ ํค๊ฐ ๋งต์ ์กด์ฌํ๋์ง ํ์ธ
- keySet(): ๋ชจ๋ ํค๋ฅผ Set์ผ๋ก ๋ฐํ