Algorithm

[JAVA] 10μ§„μˆ˜ → 2μ§„μˆ˜, format, replace / 비밀지도

O'mil 2024. 6. 12. 14:35
728x90

πŸ”— 링크

[1μ°¨] 비밀지도

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ λ§€μΉ­. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 λ§€μΉ­ λ°›μœΌμ„Έμš”.

programmers.co.kr

 

πŸ“Œ 문제 μ„€λͺ…

  1. μ§€λ„λŠ” ν•œ λ³€μ˜ 길이가 n인 μ •μ‚¬κ°ν˜• λ°°μ—΄ ν˜•νƒœλ‘œ, 각 칸은 "곡백" (" ") λ˜λŠ” "λ²½" ("#") 두 μ’…λ₯˜λ‘œ 이루어져 μžˆλ‹€.
  2. 전체 μ§€λ„λŠ” 두 μž₯의 지도λ₯Ό κ²Ήμ³μ„œ 얻을 수 μžˆλ‹€. 각각 '지도 1'κ³Ό '지도 2'라고 ν•˜μž. 지도 1 λ˜λŠ” 지도 2 쀑 μ–΄λŠ ν•˜λ‚˜λΌλ„ 벽인 뢀뢄은 전체 μ§€λ„μ—μ„œλ„ 벽이닀. 지도 1κ³Ό 지도 2μ—μ„œ λͺ¨λ‘ 곡백인 뢀뢄은 전체 μ§€λ„μ—μ„œλ„ 곡백이닀.
  3. '지도 1'κ³Ό '지도 2'λŠ” 각각 μ •μˆ˜ λ°°μ—΄λ‘œ μ•”ν˜Έν™”λ˜μ–΄ μžˆλ‹€.
  4. μ•”ν˜Έν™”λœ 배열은 μ§€λ„μ˜ 각 κ°€λ‘œμ€„μ—μ„œ λ²½ 뢀뢄을 1, 곡백 뢀뢄을 0으둜 λΆ€ν˜Έν™”ν–ˆμ„ λ•Œ μ–»μ–΄μ§€λŠ” μ΄μ§„μˆ˜μ— ν•΄λ‹Ήν•˜λŠ” κ°’μ˜ 배열이닀.

πŸ‘€ 예제

✏️ 풀이 μˆœμ„œ

  1. 10μ§„μˆ˜λ₯Ό 2μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜κΈ°
  2. λ³€ν™˜ν•œ 2μ§„μˆ˜λ₯Ό n의 길이에 λ§žμΆ”κΈ°
  3. 1 -> "#", 0 -> " "으둜 λ³€ν™˜ν•˜κΈ°
  4. 좜λ ₯

 

πŸ’» μ½”λ“œ

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        
        for (int i = 0; i < n; i++) {
            String binary = Integer.toBinaryString(arr1[i] | arr2[i]);
            binary = String.format("%" + n + "s", binary);
            binary = binary.replace("1", "#").replace("0", " ");
            answer[i] = binary;
        }
        return answer;
    }
}

 

πŸ“10 μ§„μˆ˜ → nμ§„μˆ˜ λ³€ν™˜

  • 2μ§„μˆ˜: toBinaryString(int i)
  • 8μ§„μˆ˜: toOctalString(int i)
  • 16μ§„μˆ˜: toHexaString(int i)
  • λ¦¬ν„΄νƒ€μž…μ€ λͺ¨λ‘ String
int num = 10;

String binary = Integer.toBinaryString(num); // 2μ§„μˆ˜ λ³€ν™˜
String octal = Integer.toOctalString(num); // 8μ§„μˆ˜ λ³€ν™˜
String hexa = Integer.toHexaString(num); // 16μ§„μˆ˜ λ³€ν™˜

 

πŸ“ 포맷 μ§€μ •μž

format("%" + n + "s", binary);
String name = "Omil";
int age = 20;

// κ²°κ³Ό: "Name: Omil, Age: 30"
String result = String.format("Name: %s, Age: %d", name, age);
System.out.println(result);
  • μ΄κ±°λž‘ 같은 λ°©μ‹μž„
  • 단지, λ°”κΎΌ 2μ§„μˆ˜μ˜ 값이 n의 길이와 λ‹€λ₯Ό 경우 nκ³Ό 길이λ₯Ό λ§žμΆ°μ£ΌλŠ” κ±°μž„
  • %5s: 5μΉΈ λ§Œλ“€μ–΄λ‘κ³  였λ₯Έμͺ½ μ •λ ¬
  • %-5s: 5μΉΈ λ§Œλ“€μ–΄λ‘κ³  μ™Όμͺ½ μ •λ ¬

 


πŸ“šReference

https://hianna.tistory.com/527

728x90