알고리즘
-
[알고리즘] 버블정렬알고리즘 2024. 11. 13. 14:42
버블정렬 버블 정렬은 인접한 두 요소를 비교하여, 앞 요소가 뒤 요소보다 클 경우 두 요소의 위치를 교환하는 방식으로 정렬하는 알고리즘이다.이를 반복하면 가장 큰 수가 배열의 맨 뒤로 이동하게 됩니다. 각 순회가 끝날 때마다 정렬되지 않은 부분 중 가장 큰 요소가 마지막 위치에 고정된다. 버블정렬은 외부루프에서는 n-1번을 돌고 내부 루프에서는 n-1-i 번의 비교를 수행하므로 시간복잡도는 N^2이다.삽입정렬과 마찬가지로 배열이 길어질수록 비효율적이나 구현은 간단하다. Scanner sc = new Scanner(System.in);int n = Integer.parseInt(sc.next());int[] arr = new int[n];for(int i=0; i arr[j+1]){ ..
-
[알고리즘] 선택정렬알고리즘 2024. 11. 13. 14:33
선택정렬선택정렬은 배열 내 요소 하나마다 나머지 요소들 중 최소값을 찾아 해당 위치에 배치하는 방식의 정렬 알고리즘이다,이 방식은 배열의 첫 번째 요소부터 마지막 요소까지 반복하면서, 각 위치에 맞는 최소값을 찾아 배열 앞부분부터 정렬해 나간다. 배열 내 요소 1개당 n개의 배열 모두를 탐색하고,n개의 요소들에 대해 반복해야하므로 시간복잡도는 N^2 이다.따라서 배열의 크기가 커질수록 비효율적이지만 구현은 단순하다는 특징이 있다. int n = Integer.parseInt(sc.next());int[] arr = new int[n];for(int i=0; i
-
[코테] 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 풀이기존의 풀..