본문 바로가기

코딩테스트 및 알고리즘41

좌표 정렬 문제 .N개의 평면상의 좌표(x, y)가 주어지면 모든 좌표를 오름차순으로 정렬하는 프로그램을 작성하세요. 입력 예시 5 2 7 1 3 1 2 2 5 3 6 답 : 1 2 1 3 2 5 2 7 3 6 나의 답변 class Point implements Comparable{ int x; int y; public Point(int x, int y) { this.x=x; this.y=y; } @Override public int compareTo(Point o) { if(this.x==o.x)return this.y-o.y; else return this.x-o.x; } } public class Main { public static void main(String[] args) { Scanner sc = ne.. 2024. 2. 6.
정렬 응용 문제. 철수네 반에는 N명의 학생들이 있습니다. 선생님은 반 학생들에게 반 번호를 정해 주기 위해 운동장에 반 학생들을 키가 가장 작은 학생부터 일렬로 키순으로 세웠습니다. 제일 앞에 가장 작은 학생부터 반 번호를 1번부터 N번까지 부여합니다. 철수는 짝꿍보다 키가 큽니다. 그런데 철수가 앞 번호를 받고 싶어 짝꿍과 자리를 바꿨습니다. 선생님은 이 사실을 모르고 학생들에게 서있는 순서대로 번호를 부여했습니다. 철수와 짝꿍이 자리를 바꾼 반 학생들의 일렬로 서있는 키 정보가 주어질 때 철수가 받은 번호와 철수 짝꿍이 받은 번호를 차례로 출력하는 프로그램을 작성하세요. 입력 예시 9 120 125 152 130 135 135 143 127 160 답 : 3 8 public class Main { public.. 2024. 2. 3.
중복확인 문제. 현수네 반에는 N명의 학생들이 있습니다. 선생님은 반 학생들에게 1부터 10,000,000까지의 자연수 중에서 각자가 좋아하는 숫자 하나 적어 내라고 했습니다. 만약 N명의 학생들이 적어낸 숫자 중 중복된 숫자가 존재하면 D를 출력하고, N명이 모두 각자 다른 숫자를 적어냈다면 U를 출력하는 프로그램을 작성하세요. 입력 예시 8 20 25 52 30 39 33 43 33 답 : D 나의 답변 public class Main { public char solution(int n, int[] arr) { char answer = 'U'; int flag=0; for( int i=0; i 2024. 1. 31.
LRU 알고리즘 문제. LRU 알고리즘을 구현하라. LRU 알고리즘은 캐시의 최근 사용 여부에 따라 데이터를 교체하는 알고리즘이며 알고리즘은 가장 최근에 사용된 데이터를 가장 오래된 데이터와 교체하는 방식으로 동작한다. 주어진 데이터 배열을 순회하면서 캐시에 데이터를 저장하는데, 이미 캐시에 해당 데이터가 존재하는 경우 해당 데이터를 최신화하고, 그렇지 않은 경우에는 가장 오래된 데이터를 제거하고 새 데이터를 캐시의 맨 앞에 추가하라. 최종적으로 업데이트된 캐시를 반환하고 출력하여라. 입력 예시 5 9 1 2 3 2 6 2 3 5 7 답 : 7 5 3 2 6 나의 답변 public class Main { public int[] solution(int size, int n, int[] arr) { int[] cache =.. 2024. 1. 30.