이코테

    자바(Java) 알고리즘 문제풀이 부품 찾기 [이코테 / 정렬]

    문제 설명 동빈이네 전자 매장에는 부품이 N개 있다. 각 부품은 정수 형태의 고유한 번호가 있다. 어느 날 손님이 M개 종류의 부품을 대량으로 구매하겠다며 당일 날 견적서를 요청했다. 동빈이는 떄를 놓치지 않고 손님이 문의한 부품 M개 종류를 모두 확인해서 견적서를 작성해야 한다. 이때 가게 안에 부품이 모두 있는지 확인하는 프로그램을 작성하시오. 예를 들어 가게의 부품이 총 5개일 때 부품 번호가 다음과 같다고 하자. N = 5, [8, 3, 7, 9 ,2] 손님은 총 3개의 부품이 있는지 확인을 요청했는데, 그 부품의 번호는 다음과 같다. M = 3, [5, 7, 9] 이때 손님이 요청한 부품 번호의 순서대로 부품을 확인해 부품이 있으면 yes, 없으면 no 를 출력하고 구분은 공백으로 한다. 입력 ..

    자바(Java) 알고리즘 문제풀이 두 배열의 원소 교체 [이코테 / 정렬]

    문제 설명 동빈이는 N개의 원소로 구성되어 있고 배열의 원소가 모두 자연수인 두 배열 A와 B를 가지고 있다. 동빈이는 최대 K번의 바꿔치기 연산을 수행할 수 있는데, 바꿔치기 연산이란 배열 A에 있는 원소 하나와 배열 B에 있는 원소 하나를 골라서 두 원소를 서로 바꾸는 것을 말한다. 동빈이의 최종 목표는 배열 A의 모든 원소의 합이 최대가 되도록 하는 것이며, 여러분은 동빈이를 도와야 한다. N, K, 그리고 배열 A,B 의 정보가 주어졌을 때, 최대 K번의 바꿔치기 연산을 수행하여 만들 수 있는 배열 A의 모든 원소의 합의 최댓값을 출력하는 프로그램을 작성하시오. 예를 들어 N = 5, K = 3이고 배열 A = [1,2,5,4,3] , 배열 B = [5,5,6,6,5] 라고 했을 때 다음과 같이 ..

    자바(Java) 알고리즘 문제풀이 성적이 낮은 순서로 학생 출력하기 [이코테 / 정렬]

    문제 설명 N명의 학생이 있다. 학생 정보는 학생의 이름과 학생의 성적으로 구분된다. 각 학생의 이름과 성적 정보가 주어졌을 때, 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하시오. 입력 조건 첫 번째 줄에 학생의 수 N이 입력된다. (1

    자바(Java) 알고리즘 문제풀이 위에서 아래로 [이코테 / 정렬]

    문제 설명 하나의 수열에는 다양한 수가 존재한다. 이러한 수는 크기에 상관없이 나열되어 있다. 이 수를 큰 수부터 작은 수의 순서로 정렬해야 한다. 수열을 내림차순으로 정렬하는 프로그램을 작성하시오. 입력 조건 첫 번째 줄에 수열에 속해 있는 수의 개수 N이 주어진다. (1 = 0 && arr[prev] < tmp) { arr[prev + 1] = arr[prev]; prev--; } // 탐색 종료된 지점에 현재 선택된 변수의 값을 삽입 arr[prev + 1] = tmp; } System.out.println(Arrays.toString(arr)); } }

    자바(Java) 알고리즘 문제풀이 미로탈출 [이코테 / BFS]

    문제 설명 동빈이는 N * M 크기의 직사각형 형태의 미로에 갇혀 있다. 미로에는 여러 괴물이 있어 이를 피해 탈출해야 한다. 동빈이의 위치는 (1,1) 이고 미로의 출구는 (N,M)의 위치에 존재하며 한 번에 한 반씩 이동할 수 있다. 이때 괴물이 있는 부분은 0으로, 괴몰이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 이때 동빈이가 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오. 칸을 셀 떄는 시작과 마지막 칸을 모두 포함해 계산한다. 입력 조건 첫 번째 줄에 두 정수 N,M (4= 0 && nx < n && ny < m && map[nx][ny] == 1 && !checked[nx][ny]) { checked[nx][ny] = true; q.offer(..