CodingTest/Java
Lv.2 : μ€νμ±ν λ°©
Soom_1n
2023. 11. 23. 16:51
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ λ§€μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
πΈ λ¬Έμ λΆμ πΈ
- μ€νμ±ν λ°©μμ μ μ₯, ν΄μ₯, λλ€μ λ³κ²½ μΈ κ°μ§ κΈ°λ₯μ κΈ°λ‘μ΄ μ£Όμ΄μ§λ€.
- μ¬μ©μλ μ μ μμ΄λλ‘ κ΅¬λΆλλλ°, μ μ₯ λμ λλ€μμ΄λ λλ€μ λ³κ²½ μ λλ€μμ΄ λ³κ²½ λ μ μλ€.
- μ¬μ©μκ° λ€μ΄μ€κ³ λκ° κΈ°λ‘μ λ¬Έμμ΄ λ°°μ΄λ‘ λ°ννλλ°, μ΅μ’ λ³κ²½ λ λλ€μμΌλ‘ λνλ΄μΌνλ€.
πΈ λ¬Έμ νμ΄ πΈ
- μ¬μ©μ μμ΄λμ λ°λ₯Έ λλ€μμ λ§΅μΌλ‘ κΈ°λ‘νκ³ , μ΅μ’ λ°ν μ λ¬Έμμ΄λ‘ λ³ννλ€.
πΈ μ½λ πΈ
import java.util.Map;
import java.util.HashMap;
import java.util.Queue;
import java.util.ArrayDeque;
class Solution {
public String[] solution(String[] records) {
Map<String, String> nick = new HashMap<>();
Queue<String> history = new ArrayDeque<>();
for (String record: records) {
String[] recordStr = record.split(" ");
switch (recordStr[0].charAt(0)) {
case 'L':
history.add(recordStr[1]);
history.add("λμ΄ λκ°μ΅λλ€.");
break;
case 'E':
history.add(recordStr[1]);
history.add("λμ΄ λ€μ΄μμ΅λλ€.");
default:
nick.put(recordStr[1], recordStr[2]);
}
}
String[] answer = new String[history.size()/2];
for (int i = 0; i < answer.length; i++) {
answer[i] = nick.get(history.poll()) + history.poll();
}
return answer;
}
}
πΈ μ½λ ν΄μ πΈ
- μ¬μ©μ μμ΄λμ λ°λ₯Έ λλ€μ μ ν΄μλ§΅ nickμ μ μ₯νλ€.
- μ΄μ© κΈ°λ‘μ λ°λΌμ μ
μ₯/ν΄μ₯/λλ€μ λ³κ²½μ λ°λΌ λ€λ₯΄κ² μ²λ¦¬νλ€.
- μ μ₯/ν΄μ₯ μ, μμ΄λμ λ©μΈμ§λ₯Ό historyμ κΈ°λ‘νλ€.
- μ μ₯/λ³κ²½ μ, λ§΅ nickμ μ μ₯ λ ν΄λΉ μμ΄λμ λλ€μμ λ³κ²½νλ€.
- historyλ ν λͺ
λ Ήμ λν΄μ μ¬μ©μ μμ΄λ + λ©μΈμ§ 2κ°μ§λ‘ λλ μ μ₯λμμΌλ―λ‘, μ λ΅μ κ·Έ ν¬κΈ°μ μ λ°λ§νΌ λ°°μ΄μ λ§λ λ€.
- μ λ΅ λ°°μ΄ answerμ μμ΄λμ λ°λ₯Έ λλ€μκ³Ό λ©μΈμ§λ₯Ό ν©μ³ μ μ₯ ν λ°ννλ€.
πΈ end πΈ
- μμ΄λλ₯Ό λ§΅μΌλ‘ μ μ©νλ λΆλΆλ§ μκ°νλ€λ©΄ μ½κ² νμ΄ν μ μλ λ¬Έμ μλ€.
- λ€μ΄μμ΅λλ€, λκ°μ΅λλ€ νλ λ©μΈμ§κ° μ€λ³΅μΌλ‘ μ μ₯ λλκ² λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ°¨μ§νμ§ μμκΉ νμ§λ§, λ¬Έμμ΄μ΄λΌμ μ΄μ°¨νΌ μ£Όμλ‘ μ μ₯λμμν λ ν¬κ² λ¬Έμ λμ§ μμμ κ²μ΄λ€.
- μ’λ ν¨μ¨μ μΌλ‘ νκ³ μ μμ΄λ λ°°μ΄, λ©μΈμ§ λ°°μ΄ λ°λ‘ μ μ₯νμ§ μκ³ , νμ λ£μ΄λ³΄μλλ° μ±λ₯ λΉκ΅λ ν΄λ³΄μ§ μμμ μ λͺ¨λ₯΄κ² μ§λ§, λ°°μ΄μ μΈλ±μ€λ‘ μ°Έμ‘°ν΄μ μ§μμ μΌλ‘ μ ν νμμ΄ λ°μνλ κ² λ³΄λ€λ μ μμλ₯Ό μ κ±°ν΄λκ°λ λ°©μμ΄ λ λΉ¨λμ κ²μΌλ‘ μμνλ€.
- λ€λ₯Έ νμ΄λ₯Ό 보λ κ°μ²΄μ§ν₯μΌλ‘ ꡬνν κ±Έ λ΄€λλ°, νμ€ν νμ₯μ±μ΄ μΆ©λΆν μ’μ보μμ§λ§ λ§΅λ§ μ°λ©΄ λλ λ¬Έμ μμ μ’ κ³Όν νμ΄ κ°μλ€. κ·Έλ₯ μ½ν μ© νμ΄μ κ°μ²΄μ§ν₯ μ μ© λ₯λ ₯μ 보λ κ³Όμ νμ΄λ μ΄λ° μ°¨μ΄κ° μμ κ² κ°λ€.
- 2019 KAKAO RECRUITMENTμ 1λ² λ¬Έμ μ΄κ³ μ λ΅λ₯ μ 59.91%λ‘ λμ΄λμ λΉν΄μ μ€λ΅λ₯ μ΄ λμλ κ² κ°λ€. ν¨μ¨μ± νκ°κ° λ€μ΄κ°λ€κ³ νλλ°, λ§΅ μλ£κ΅¬μ‘°λ₯Ό μ ννμ§ μμμΌλ©΄ ν΅κ³Όλμ§ μμλ κ² κ°λ€.
- λ€μμ 곡μ ν΄μ€ λ΄μ©μ΄λ€.
첫 λ²μ§Έ λ¬Έμ λ΅κ² ν° κ³ λ―Ό μμ΄ μ°κ΄ λ°°μ΄(λ§΅)μ μ΄μ©ν΄μ μ½κ² ν μ μμ΅λλ€.
record λ₯Ό μν νλ©΄μ
Enter, Leave μΈ κ²½μ° μ μ μμ΄λμ ν¨κ» μ λ΅μ μΆλ ₯λ λ©μμ§μ μ’ λ₯λ₯Ό κΈ°λ‘μ ν΄λ‘λλ€. μ΄λ κ² κΈ°λ‘ν΄λ κ²μ events λΌκ³ ν©μλ€.Enter, Change μΈ κ²½μ° μ°κ΄ λ°°μ΄μ μ΄μ©νμ¬ κ° μ μ μμ΄λλ₯Ό ν€λ‘, λλ€μμ κ°μΌλ‘ μ μ₯ν΄ λ‘λλ€. μ΄λ κ² ν΄μ μ΅μ’ λλ€μμ μ μ μμ΄λλ³λ‘ μ μ§ν©λλ€.
μ΄μ events λ₯Ό μννλ©΄μ μ±ν λ°©μ μΆλ ₯ν λ©μμ§λ₯Ό μμ±ν λ, μ°κ΄ λ°°μ΄μ μ μ₯λ μμ΄λλ³ μ΅μ’ λλ€μμ μ΄μ©νλ©΄ λ©λλ€.
728x90