[코딩테스트 합격자 되기(Java)] 문제 51. 정렬이 완료된 두 배열 합치기★

2024. 12. 10. 09:33·코딩 테스트 정복기/기타
반응형

문제

이미 정렬이 완료되어 있는 두배열 arr1, arr2을 받아 병합정렬하는 Solution()함수를 구현하세요.

 

제약조건

 arr1과 arr2는 각각 길이가 1 이상 100, 000 이하 입니다.
• arr1과ar r2는 각각오름차순으로 정렬되어있습니다.

 

 

입출력 예

arr1 arr2 result
[1,2,3] [4,5,6] [1,2,3,4,5,6]
[1,3,5] [2,4,6] [1,2,3,4,5,6]

풀이 및 코드

병합정렬이므로, 이미 정렬 된 arr1과 arr2를 index0부터 값을 비교하여 채워넣으면 된다.

 

import java.io.*;
import java.util.*;

public class Main {
    private static long bfs(int n, int target){
        if(n == target) return 1;
        Queue<long[]> queue = new LinkedList<>();
        queue.add(new long[]{n, 1L});
        long result = -1;
        long[] info;
        while(!queue.isEmpty()){
            info = queue.poll();
            // 다음 연산 결과가 target과 같으면 연산 값 return
            if(info[0] * 2 == target || info[0]*10+1 == target) return info[1]+1;
            // 연산 결과가 target보다 작을 때만 다음 연산 추가
            if(info[0] * 2 < target) queue.add(new long[]{info[0]*2, info[1]+1});
            if(info[0] * 10 + 1 < target) queue.add(new long[]{info[0]*10+1, info[1]+1});

        }
        return result;

    }


    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        br.close();
        System.out.print(bfs(input[0], input[1]));
    }
}

 

 

 

 

 
728x90
반응형

'코딩 테스트 정복기 > 기타' 카테고리의 다른 글

[코딩테스트 합격자 되기(Java)] 문제 69. 조약돌 문제★ ★ ★  (0) 2025.01.05
[코딩테스트 합격자 되기(Java)] 문제 68. LIS길이계산하기★ ★ ★  (0) 2025.01.03
[코딩테스트 합격자 되기(Java)] 문제 50. 계수정렬 구현하기★  (0) 2024.12.09
[코딩테스트 합격자 되기(Java)] 문제 44.스도쿠 퍼즐★★★  (0) 2024.11.28
[코딩테스트 합격자 되기(Java)] 문제 43.1부터 N까지 숫자 중 합이 10이 되는 조합 구하기★  (0) 2024.11.27
'코딩 테스트 정복기/기타' 카테고리의 다른 글
  • [코딩테스트 합격자 되기(Java)] 문제 69. 조약돌 문제★ ★ ★
  • [코딩테스트 합격자 되기(Java)] 문제 68. LIS길이계산하기★ ★ ★
  • [코딩테스트 합격자 되기(Java)] 문제 50. 계수정렬 구현하기★
  • [코딩테스트 합격자 되기(Java)] 문제 44.스도쿠 퍼즐★★★
settong
settong
    250x250
  • settong
    개 발 자 국
    settong
  • 전체
    오늘
    어제
    • 전체보기 (202)
      • Computer Science (50)
        • Network (7)
        • Operating System (18)
        • Data Structure (9)
        • Database (11)
        • Algorithm (5)
      • Language (17)
        • Java (17)
        • Javascript (0)
        • Python (0)
      • Devops (20)
        • AWS (0)
        • Naver Cloud (16)
        • CICD (3)
        • 웹 서버 관리 (1)
      • Front (0)
        • React (0)
      • Backend (5)
        • Spring (5)
      • 코딩 테스트 정복기 (110)
        • 백준 (51)
        • 프로그래머스 (53)
        • 기타 (6)
      • etc (0)
      • 경제 상식 (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    DFS
    CI/CD
    ncp200
    백준
    해시
    다이나믹프로그래밍
    Network
    다익스트라
    github actions
    백트래킹
    벨만포드
    완전탐색
    집합
    ncp
    Spring Boot
    ncp202
    분할정복
    lcs
    프로그래머스
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
settong
[코딩테스트 합격자 되기(Java)] 문제 51. 정렬이 완료된 두 배열 합치기★
상단으로

티스토리툴바