[ν] 7. κ΅μ‘κ³Όμ μ€κ³
μ€λͺ
νμλ 1λ κ³Όμ μ μμ κ³νμ μ§μΌ ν©λλ€.
μμ μ€μλ νμκ³Όλͺ©μ΄ μμ΅λλ€. μ΄ νμκ³Όλͺ©μ λ°λμ μ΄μν΄μΌ νλ©°, κ·Έ μμλ μ ν΄μ Έ μμ΅λλ€.
λ§μ½ μ΄ κ³Όλͺ©μ΄ A, B, C, D, E, F, Gκ° μκ³ , μ¬κΈ°μ νμκ³Όλͺ©μ΄ CBAλ‘ μ£Όμ΄μ§λ©΄ νμκ³Όλͺ©μ C, B, Aκ³Όλͺ©μ΄λ©° μ΄ μμλλ‘ κΌ μμ κ³νμ μ§μΌ ν©λλ€.
μ¬κΈ°μ μμλ Bκ³Όλͺ©μ Cκ³Όλͺ©μ μ΄μν νμ λ€μ΄μΌ νκ³ , Aκ³Όλͺ©μ Cμ Bλ₯Ό μ΄μν νμ λ€μ΄μΌ νλ€λ κ²μ λλ€.
νμκ° C, B, D, A, G, Eλ‘ μμ κ³νμ μ§λ©΄ μ λλ‘ λ μ€κ³μ΄μ§λ§
C, G, E, A, D, B μμλ‘ μ§°λ€λ©΄ μ λͺ» μ€κ³λ μμ κ³νμ΄ λ©λλ€.
μμ κ³νμ κ·Έ μμλλ‘ μμ μμ μ΄ μ΄μλλ©΄ λ€μ μμ μ μμνλ€λ κ²μΌλ‘ ν΄μν©λλ€.
μμ κ³νμμμ κ° κ³Όλͺ©μ 무쑰건 μ΄μλλ€κ³ κ°μ ν©λλ€.
νμκ³Όλͺ©μμκ° μ£Όμ΄μ§λ©΄ νμκ° μ§ Nκ°μ μμ μ€κ³κ° μλ κ²μ΄λ©΄ “YES", μλͺ»λ κ²μ΄λ©΄ ”NO“λ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμΈμ.
μ λ ₯
첫 μ€μ ν μ€μ νμκ³Όλͺ©μ μμκ° μ£Όμ΄μ§λλ€. λͺ¨λ κ³Όλͺ©μ μλ¬Έ λλ¬Έμμ λλ€.
λ λ² μ§Έ μ€λΆν° νμκ° μ§ μμ μ€κ³κ° μ£Όμ΄μ§λλ€.(μμ μ€κ³μ κΈΈμ΄λ 30μ΄νμ΄λ€)
μΆλ ₯
첫 μ€μ μμ μ€κ³κ° μλ κ²μ΄λ©΄ “YES", μλͺ»λ κ²μ΄λ©΄ ”NO“λ₯Ό μΆλ ₯ν©λλ€.
μμ μ λ ₯ 1
CBA
CBDAGE
μμ μΆλ ₯ 1
YES
<<νμ΄>>
-λμ νμ΄-
μκ° λ³΅μ‘λ : O(N)
μ²μμ λ°νμ μλ¬κ° λ¬λ€. νμκ³Όλͺ©μ μμ λ€ λ£μ§ μμ κ²½μ°λ₯Ό κ³ λ €λͺ»ν΄μ μκΈ΄ λ¬Έμ μ΄λ€. λΉκ΅νλ©΄μ νμμ pollμ νλλ° νμκ³Όλͺ©μ λ€ λ£μ§ μμ κ²½μ°μλ λ€ λΉκ΅νκΈ°μ μ μ΄λ―Έ νμ λ°μ΄ν°κ° μλ μν©μ΄ λ°μνλ€. κ·Όλ° μ΄ μνμμλ pollμ νκΈ° λλ¬Έμ NullPointerException μλ¬κ° λ°μνκ² λλ€.
μ΄λ₯Ό κ³ λ €νλ μ λ΅μ λ§μΆ μ μμλ€.
λν String.valueOf() λ₯Ό νμνμ¬ String λ©μλμΈ containsλ₯Ό νμ©ν μ μμλ€. String.valueOf() μ΄κ² μμμΌλ©΄ λ¬Έμλ₯Ό λ¬Έμμ΄λ‘ λ°κΏ μκ° μμ΄μ containsλ₯Ό νμ©νμ§ λͺ»νλ€.
import java.util.*;
class Main {
private String solution(String target, String str) {
Queue<Character> Q = new LinkedList<>();
for(char x : str.toCharArray()) {
if(target.contains(String.valueOf(x))) {
Q.offer(x);
}
}
for(char y : target.toCharArray()) {
if(!Q.isEmpty()) {
if (y != Q.poll()) return "NO";
} else return "NO";
}
return "YES";
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String target = in.next();
String str = in.next();
System.out.println(T.solution(target, str));
}
}
-κ°μ¬λ νμ΄-
μκ° λ³΅μ‘λ : O(N)
κ°μ¬λμ λμ μ κ·Ό λ°©μμ΄ λ°λμ΄λ€. λλ μ€μ λ£μ κ°μ’λ₯Ό μ€μ ν΄μΌνλ μμμ κ°κ³Ό λΉκ΅νλ©΄μ νμ λ£μλ€λ©΄, κ°μ¬λμ 미리 μ§μ ν΄λ ν΄μΌνλ μμλ₯Ό λ£μ΄λκ³ μ€μ μ μ²ν κ²κ³Ό λΉκ΅νλ©΄μ pollμ νλ©° λ°μ΄ν°λ₯Ό λΉμλκ°λ€. κ·Έ μ€μ κ°μ΄ κ°μ§ μμΌλ©΄ "NO" λ°ννκ² νλ€.
μ΄νμ isEmpty() λ©μλλ‘ 0μ΄λ©΄ "YES"λ₯Ό λ°ννλλ‘ μλλ©΄ "NO"λ₯Ό λ°ννλλ‘ νλ€.
import java.util.*;
class Main {
private String solution(String target, String str) {
String answer = "YES";
Queue<Character> Q = new LinkedList<>();
for(char x : target.toCharArray()) Q.offer(x);
for(char x : str.toCharArray()) {
if(Q.contains(x)) {
if(x != Q.poll()) return "NO";
}
}
if(!Q.isEmpty()) return "NO";
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String target = in.next();
String str = in.next();
System.out.println(T.solution(target, str));
}
}
νΉνλ, ν μ λ©μλ μ€μ contains()κ° μλλ° μ΄λ₯Ό μ νμ©νλ©΄ μ½λλ₯Ό μ’ λ μ½κ³ μ§§κ² κ΅¬μ±ν μ μλ€.
μ΄λ κ² κ°μ λ°©μμ μ¬μ©νλλΌλ 무μμ κΈ°μ€μΌλ‘ μ‘μμ§ κ·Έλ¦¬κ³ μ΄λ€ λ©μλλ₯Ό μ΄μ©ν μ§μ λ°λΌ νμ΄ ννκ° λ§μ΄ λ°λλ€.
μ΄λ² λ¬Έμ κ°μ κ²½μ° λ ν¨μ¨μ μΈ νμ΄λ₯Ό μκ°νμ§ λͺ»ν μ΄μ λ λ κ°μ§κ° μλ€κ³ λ³Έλ€.
첫째, μ§μμ λΆμ‘±μ΄λ€. λ΄κ° νμ λν΄ μμ§ λ§μ΄ μμ§ λͺ»ν΄μ μκ°νμ§ λͺ»ν κ²μ΄λ€. νΉν containsκ° νμ λ©μλμΈμ§ λͺ°λλ€.
λμ§Έ, μμ§ μ½λλ₯Ό μ§λ κ²μ΄ λ―Έμνλ€λ κ²μ΄λ€. μ΄λ κΎΈμ€ν μμ¬μ½λλ₯Ό μ§μ λ΄κ° νμ΄λ³΄κ³ κ°μ¬λμ νμ΄μ νμ λ°μ μ’ μ½λλ₯Ό λ€λ¬μ΄μ κ·Έ λ¬Έμ μ λ°©μμ λ΄ κ²μΌλ‘ λ§λλ κ³Όμ μ΄ νμνλ€. μ΄λ° κ²λ€μ΄ μκΎΈ μμ¬κ°λ©΄ μΈμ κ° μ΅μ μΌλ‘ ν¨μ¨μ μΈ μ½λλ₯Ό μ§κ³ μμ κ²μ΄λΌ νμ νλ€ !!
μ€λλ λ§μ΄ λ°°μ°κ³ κ°λ€ γ γ
'μ½λ©ν μ€νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€ λμ ν©] 11659λ²: κ΅¬κ° ν© κ΅¬νκΈ° 4 (3) | 2024.01.14 |
---|---|
[ν] 8. μκΈμ€ (1) | 2024.01.14 |
[ν] 6. 곡주 ꡬνκΈ° (1) | 2024.01.13 |
[μ€ν] 5. μ λ§λκΈ° (1) | 2024.01.13 |
[μ€ν] 4. νμμ κ³μ° (0) | 2024.01.10 |
λκΈ