[Java / 알고리즘] 대표적인 정렬 알고리즘. 버블 정렬, 삽입 정렬, 선택 정렬
·
CodingTest/Algorithm
정렬 알고리즘은 n개의 숫자가 입력으로 주어졌을 때, 이를 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘이다. 예를 들어 n개의 숫자가 저장되어있는 배열을, 오름차순의 조건으로 작성하여 입력하면 오름차순으로 정렬된 배열을 출력으로 구할 수 있다. 정렬 알고리즘은 정말 다양한데, 이에 따라 각각의 수행시간도 천차 만별이다. 1. 버블 정렬(Bubble Sort) 두 인접한 데이터를 비교해서, 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾸는 방식이다. [ 코드 ] static void bubbleSort(int[] arr) { int n = arr.length; for (int i = 0; i < n - 1; i++) { boolean swap = false; for (int j = ..
[Java / 코딩테스트] 청소 문제
·
CodingTest/Java로 푼 코딩 테스트
1. 생각 일단 k번 반복해야 한다. -> for(k) 초기위치 (0,0) 방향 0 : 오른쪽 1 : 아래 2 : 왼쪽 3 : 위 조건에 따라 이동 2. 생각대로 코딩 [ 코드 ] public int[] solution(int[][] board, int k){ int[] answer = new int[2]; //초기화 answer[0] = 0; answer[1] = 0; int direction = 0; for (int i = 0; i < k; i++) { boolean change = false; //방향전화 변수 // 넘어가면 방향 전환 if (direction == 0 && answer[1] == board.length-1) {change = true;} if (direction == 1 && an..
[Java / 코딩테스트] 사다리타기
·
CodingTest/Java로 푼 코딩 테스트
1. 생각 일단 n번 반복해야 한다. -> for(n), 임시값 만들기 ladder[i][j]에 값이 포함되면, 오른쪽으로 이동, 임시값 +1 ladder[i][j]+1에 값이 포함되면, 왼쪽으로 이동, 임시값 -1 임시값 -> 문자(A,B,C,D,E...)로 변경 2. 생각대로 코딩 [ 코드 ] import java.util.*; public class Problem01 { public char[] solution(int n, int[][] ladder){ char[] answer = new char[n]; int[] temps = new int[n]; for (int i = 1; i < n+1; i++) { int temp = i; for (int j = 0; j < ladder.length; j++..
[프로그래머스 / Java] 개인정보 수집 유효기간
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 모든 달이 28일까지 있다고 가정하므로 Date format의 날짜 계산을 다르게 해야한다. import java.util.*; import java.text.*; class Solution { public int[] solution(String today, String[] terms, String[] privacies) { ArrayList answer_list = new ArrayList(); HashMap terms_map = new HashMap(); for(int i=0; i
[프로그래머스 / Java] 기사단원의 무기
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 number까지의 약수의 갯수를 구해서 배열에 삽입한다 배열에서 limit가 넘어가면 power로 교체한다 배열의 합을 구한다. import java.util.Arrays; class Solution { public int solution(int number, int limit, int power) { int answer = 0; // 1. 약수의 갯수 -> 나머지가 0 int[] counts = new int[number]; int c = 0; for(int i=1; i
[프로그래머스 / Java] 명예의 전당
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 k일 까지는 그냥 낮은 값이 발표 점수이고 k일 이후부터는 배열정렬해서 찾으면 되지않을까 k가 score 배열의 길이보다 클 때와 작을 때도 있으니 그것도 체크 import java.util.Arrays; class Solution { public int[] solution(int k, int[] score) { int[] answer = new int[score.length]; // 명예의 전당 배열 설정 // 초기값 설정 int[] arr = new int[k+1]; int min = score[0]; arr[0] = min; answer[0] = min; if(k
[코딩테스트 / Java] 개미수열
·
CodingTest/Java로 푼 코딩 테스트
모회사 코딩테스트 중 개미수열에 대해 알게되어 흥미가 생겨 정리해봤습니다 개미수열이란? 베르나르 베르베르의 소설 "개미"에 나왔던 수열 문제 입니다. 1 11 12 1121 122111 112213 12221131 [법칙] 1 => "1이 한 개" / 따라서 다음 열 => "11" 11 => "1이 두 개" / 따라서 다음 열 => "12" 12 => "1이 한 개, 2가 한 개 " / 따라서 다음 열 => "1121" 1121 => "1이 두 개, 2가 한 개, 1이 한 개" / 따라서 다음 열 => "122111" 122111 => "1이 한 개, 2가 두 개, 1이 세 개" / 따라서 다음 열 => "112213" 반복 정리하자면 한 열은 결과가 나오는 동시에 다음에 나올 열의 규칙이 된다. "숫자..
[2022 KAKAO BLIND RECRUITMENT / Java] 신고 결과 받기
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 ArrayList, 단계를 나누어서 진행 유저 ID =>신고 List 중복제거 => 신고당한 카운트 세기 => 신고당한 횟수가 K번 이상이면 신고자 카운트 증가 import java.util.ArrayList; class Solution { public int[] solution(String[] id_list, String[] report, int k) { int[] answer = new int[id_list.length]; //이름 저장 List ArrayList name = new ArrayList(); for(String id : id_list){ name.add(id); } //신고 List 중복제거 ArrayList reports = new ArrayList(); for(St..
[백준 / Java]2920번 음계
·
CodingTest/Java로 푼 코딩 테스트
https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 첫번째 풀이(오름차순, 내림차순 배열 사용X) 정답인 배열을 생성하고 맞으면 출력하는 방식 import java.util.Scanner; public class Main { public static void main(String[] args) { int[] ascending = new int[] {1,2,3,4,5,6,7,8}; Boolean Isascen..