[프로그래머스/Java] 비밀지도

2025. 5. 14. 22:37·Problem Solving/프로그래머스
문제

https://school.programmers.co.kr/learn/courses/30/lessons/17681

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

n x n의 크기의 지도가 두 개 주어지면, 이를 합쳐서 하나의 지도로 만들어야 한다.

지도의 열의 정보는 숫자로 주어지며, 이 숫자를 이진수로 변환했을 때 1이면 해당 열에서 #, 0이면 공백이라는 의미를 가진다.

 

풀이

두 지도의 열 정보를 이진수로 변환하여 행별로 OR 비트 연산을 적용해준다.

변환하여 얻은 행별 정보를 #과 공백으로 변환해주면 된다.

 

정수를 이진수로 변환하는 메서드는 `Integer.toBinaryString(int)`이다. 해당 메서드는 정수를 문자열 타입의 이진수로 반환한다.

 

이진수의 맨 왼쪽 자릿수가 0일 경우 처리를 너무 단순하게 생각해 시간이 오래 걸렸다.

최대한 엣지 케이스 처리를 꼼꼼하게 하는 습관을 들여야겠다.

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        for (int i = 0; i < arr1.length; i++) {
            int orOperation = arr1[i] | arr2[i];
            String binary = Integer.toBinaryString(orOperation);
            StringBuilder sb = new StringBuilder();
            if (binary.length() < n) {
                for (int k = 0; k < n - binary.length(); k++) {
                    sb.append(" ");
                }
            }
            for (int j = 0; j < binary.length(); j++) {
                if (binary.charAt(j) == '1') {
                    sb.append("#");
                } else if (binary.charAt(j) == '0') {
                    sb.append(" ");
                }
            }
            answer[i] = sb.toString();
        }
        return answer;
    }

}
저작자표시 비영리 동일조건 (새창열림)

'Problem Solving > 프로그래머스' 카테고리의 다른 글

[프로그래머스/Java] N진수 게임 (feat. Java 진법 변환)  (1) 2025.05.23
[프로그래머스/Java] 뉴스 클러스터링  (1) 2025.05.22
[프로그래머스/Java] 튜플  (0) 2025.05.19
[프로그래머스/Java] 캐시  (0) 2025.05.19
[프로그래머스/Java] 숫자 문자열과 영단어  (0) 2025.05.14
'Problem Solving/프로그래머스' 카테고리의 다른 글
  • [프로그래머스/Java] 뉴스 클러스터링
  • [프로그래머스/Java] 튜플
  • [프로그래머스/Java] 캐시
  • [프로그래머스/Java] 숫자 문자열과 영단어
friend5hip
friend5hip
개발 관련 지식이나 기록을 남기고 있습니다.
  • friend5hip
    friend5hip
    friend5hip
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 컴퓨터공학 (2)
        • 자료구조 (0)
        • 알고리즘 (1)
        • 데이터베이스 (1)
      • Problem Solving (42)
        • BOJ (25)
        • 프로그래머스 (15)
      • 언어 (2)
        • JavaScript (2)
      • 라이브러리 (12)
        • React (12)
      • 개발 (2)
      • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    소수 판별
    집합
    코드트리
    백준
    java
    프로그래머스
    수학
    맵
    dfs
    그리디
    dp
    정렬
    순열
    N과 M
    react
    구현
    시뮬레이션
    구간 합
    누적 합
    투 포인터
    intersection observer
    문자열
    백트래킹
    이분 탐색
    JavaScript
    BFS
    삼성 sw 역량테스트
    완전 탐색
    vite
    매개 변수 탐색
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
friend5hip
[프로그래머스/Java] 비밀지도
상단으로

티스토리툴바