본문 바로가기

STUDY/코딩테스트

(5)
프로그래머스 코딩테스트 기록 [JAVA] - 1번 문제 : encrypted_text는 최종적으로 암호화된 문자열 key는 암호화에 사용되는 문자열 rotation은 문자열을 밀어넣는? 수 크기 예를들면, "abc"라는 문자열이 있고 key는 "aaa"라면 "abc"를 "aaa"로 암호화하면 "bcd"이다. a = 1, b = 2 이런식으로 알파벳을 순서대로 숫자로 변환해서 그 값을 더하는 원리! 즉, "abc" = 123 이고 "aaa" = 111이기때문에 각 자리수에 키값을 더하면 "234"이므로 이를 다시 문자로 변환하면 "bcd" 이다. rotation값이 2라면 문자열내에서 오른쪽으로 2칸을 이동하는 의미이다. 음수면 왼쪽으로 이동 예를들면, "bcd"에서 rotation값이 2라면 "cdb" rotation값이 -1라면 "cdb"이다..
백준 2920번 음계 [JAVA] 배열문제로 난이도는 하에 속하는 문제이다. 먼저 공백을 기준으로 입력된 값을 잘라 배열에 넣어준 후 배열 앞뒤의 값을 비교한다. 오름차순과 내림차순 변수를 각각 true로 설정하고 배열 안의 값을 비교했을 때, 오름차순이나 내림차순이 아니면 해당 변수를 false로 변환한다. 값을 전부 비교 후 변수의 값을 확인해서 답을 출력한다. public static void main(String[] args) { Scanner scan = new Scanner(System.in); String input = scan.nextLine(); String[] inputarray = input.split("\\s"); boolean ascending = true; boolean descending = true; for(..
백준 7576번 토마토 [JAVA] BFS(너비우선탐색) 문제로 Java 유틸 중 queue를 써서 풀었다. 1이 입력된 x와 y좌표를 먼저 큐에 담고 그 좌표를 poll한 후 상하좌우 중 값이 0인 부분의 x, y좌표를 다시 큐에 넣는다. 이를 반복하고 큐가 비었을 때까지 다음과 같은 과정을 반복한다. 해당 과정을 마쳤을 때, 배열에 0이 있으면 -1을 리턴하고 아니면 max에서 -1한 값을 리턴하면 된다. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; //토마토 public class Main_7576 { public static void main(String[] args) { Scanner scan = new Scanner(System.in..
백준 9461번 파도반 수열 [JAVA] DP알고리즘 문제로 규칙을 찾으면 쉽게 풀 수 있는 문제다. 1차원 배열을 선언해주고 index 4까지는 입력을 해준다 index 5부터는 알고리즘을 작성해서 입력한다. 규칙 P(N) = P(N-5) + P(N-1) 단, 배열을 int로 선언 할 경우, 범위를 초과해서 -값이 입력된다. 이를 방지하기위해 가장 큰 정수형 타입인 long으로 배열을 선언한다. package codingTest_backjoon; import java.util.Scanner; //파도반수열 public class Main_9461 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = scan.nextInt(); for..
백준 1149번 RGB거리 [JAVA] DP(Dynamic programming) 알고리즘 문제이다. 2차원 배열을 선언하고 다음행을 입력할 때, 이전의 행 중 최소값을 더해서 입력한다. 그렇게 R,G,B 총 3개의 경우를 고려하고 가장 마지막 행의 값 중 가장 작은 값을 출력하면 정답이다. package codingTest_backjoon; import java.util.Scanner; //RGB거리 public class Main_1149 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int row = scan.nextInt(); int[][] arg = new int[row][3]; for(int i=0; i

반응형