알고리즘/코테
-
[알고리즘] 문제10.마구간 정하기(결정알고리즘)알고리즘/코테 2024. 11. 20. 22:46
10. 마구간 정하기(결정알고리즘) 설명N개의 마구간이 수직선상에 있습니다. 각 마구간은 x1, x2, x3, ......, xN의 좌표를 가지며, 마구간간에 좌표가 중복되는 일은 없습니다.현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각 마구간에는 한 마리의 말만 넣을 수 있고,가장 가까운 두 말의 거리가 최대가 되게 말을 마구간에 배치하고 싶습니다.C마리의 말을 N개의 마구간에 배치했을 때 가장 가까운 두 말의 거리가 최대가 되는 그 최대값을 출력하는 프로그램을 작성하세요.입력첫 줄에 자연수 N(3둘째 줄에 마구간의 좌표 xi(0출력첫 줄에 가장 가까운 두 말의 최대 거리를 출력하세요.예시 입력 1 5 31 2 8 4 9예시 출력 13 풀이전략1. 이..
-
[알고리즘] 문제 9.뮤직비디오(결정알고리즘)알고리즘/코테 2024. 11. 20. 14:24
9. 뮤직비디오(결정알고리즘) 설명지니레코드에서는 불세출의 가수 조영필의 라이브 동영상을 DVD로 만들어 판매하려 한다.DVD에는 총 N개의 곡이 들어가는데, DVD에 녹화할 때에는 라이브에서의 순서가 그대로 유지되어야 한다.순서가 바뀌는 것을 우리의 가수 조영필씨가 매우 싫어한다. 즉, 1번 노래와 5번 노래를 같은 DVD에 녹화하기 위해서는1번과 5번 사이의 모든 노래도 같은 DVD에 녹화해야 한다. 또한 한 노래를 쪼개서 두 개의 DVD에 녹화하면 안된다.지니레코드 입장에서는 이 DVD가 팔릴 것인지 확신할 수 없기 때문에 이 사업에 낭비되는 DVD를 가급적 줄이려고 한다.고민 끝에 지니레코드는 M개의 DVD에 모든 동영상을 녹화하기로 하였다. 이 때 DVD의 크기(녹화 가능한 길이)를 최소로 하려..
-
[코테] java - Character 메서드 정리알고리즘/코테 2024. 11. 11. 21:02
Character 클래스 메서드 isDigit(char ch) // 주어진 문자가 숫자인지 확인.예: Character.isDigit('5') → trueisLetter(char ch) // 주어진 문자가 알파벳인지 확인.예: Character.isLetter('a') → trueisWhitespace(char ch) // 주어진 문자가 공백 문자(스페이스, 탭 등)인지 확인.예: Character.isWhitespace(' ') → trueisUpperCase(char ch) // 문자가 대문자인지 확인.예: Character.isUpperCase('A') → trueisLowerCase(char ch) // 문자가 소문자인지 확인.예: Character.isLowerCase('a') → true..
-
[코테] java - 자료구조 TreeSet 정리알고리즘/코테 2024. 11. 8. 15:51
TreeSet 의 용도1. 중복제거2. 정렬 TreeSet 메서드TreeSet Tset = new TreeSet(); Tset 생성 (오름차순 정렬)TreeSet Tset = new TreeSet(Collections.reverseOrder()); Tset 생성(내림차순 정렬)Tset.add() // 값 추가Tset.remove() // 특정 값 제거Tset.size() // 크기 반환Tset.first() // 오름차순은 최소값, 내림차순은 최대값 (정렬시 맨앞 자료) 반환Tset.last() // 오름차순은 최대값, 내림차순은 최소값 (정렬시 맨뒤 자료) 반환
-
[코테] java - K번째 큰수 ( TreeSet )알고리즘/코테 2024. 11. 8. 15:30
5. K번째 큰 수 설명현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다.현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다.기록한 값 중 K번째로 큰 수를 출력하는 프로그램을 작성하세요.만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값은 22입니다. 입력첫 줄에 자연수 N(3출력첫 줄에 K번째 수를 출력합니다. K번째 수가 존재하지 않으면 -1를 출력합니다. 예시 입력 1 10 313 15 34 23 45 65 33 11 26 42예시 출력 1143 문제해결 전략:1. TreeSet을 활용해서 중복..
-
[코테] java 2-4 피보나치 수열알고리즘/코테 2024. 11. 2. 00:21
문제 설명1) 피보나치 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.2) 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다.입력첫 줄에 총 항수 N(3출력첫 줄에 피보나치 수열을 출력합니다.예시 입력 1 10예시 출력 11 1 2 3 5 8 13 21 34 55 풀이기존코드)Scanner sc = new Scanner(System.in);int num = Integer.parseInt(sc.nextLine());int[] arr = new int[num];arr[0] = 1;arr[1] = 1;for(int i=2; i 배열쓰지않고 피보나치 풀기) Scanner sc = new Scanner(S..
-
[코테] java - 2-3 가위바위보알고리즘/코테 2024. 11. 1. 23:53
문제: 가위바위보A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다.예를 들어 N=5이면두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요. 입력첫 번째 줄에 게임 횟수인 자연수 N(1두 번째 줄에는 A가 낸 가위, 바위, 보 정보가 N개 주어집니다.세 번째 줄에는 B가 낸 가위, 바위, 보 정보가 N개 주어집니다.출력각 줄에 각 회의 승자를 출력합니다. 비겼을 경우는 D를 출력합니다.예시 입력 1 52 3 3 1 31 1 2 2 3예시 출력 1ABABD 풀이기존의 풀..