본문 바로가기
반응형

알고리즘/백준26

백준 2798번 블랙잭 자바 java 문제 풀이 3중 for문으로 3개의 카드의 합을 구한다 카드의 합과 M값이 같다면 바로 리턴 카드의 합이 M값을 넘어간다면 넘어가고 카드의 합이 M값에 가까운 것을 비교해서 리턴해주는 것으로 해결하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); int[] card = new int[N]; for (int i = 0; i < N; i++) { card[i] = sc.nextInt(); } System.out.println(blackJack(card.. 2021. 4. 8.
백준 2292번 벌집 자바 java 문제 풀이 1 -> 1 2 -> 2 ~ 7 (6) 3 -> 8 ~ 19 (12) 4 -> 20 ~ 37 (18) 5 -> 38 ~ 61 (24) 해당 영역의 벌집 개수가 6씩 늘어나는 규칙을 찾을 수 있다 영역의 시작 값과 마지막 값을 계속 더하면서 찾으려는 N값에 범위까지 도달하면 출력하게끔 해서 해결하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int start = 2; int end = 7; int plus = 6; int count = 2; int N = sc.nextInt(); if (N == 1) { Syst.. 2021. 4. 8.
백준 10250번 ACM 호텔 자바 java 문제 풀이 6층 12호 10번째 손님일 경우엔 101(1) -> 201(2) -> 301(3) -> 401(4) -> 501(5) -> 601(6) -> 102(7) -> 202(8) -> 302(9) -> 402(10) 순서대로 배정이 됨으로 2중 for문으로 순서를 계산하여 해결을 하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); int[] H = new int[T]; int[] W = new int[T]; int[] N = new int[T]; for (int i = 0; i <.. 2021. 4. 7.
백준 2775번 부녀회장이 될테야 자바 java 문제 풀이 처음에는 수학공식처럼 수식이 있을 것 같아서 패턴을 찾으려고 이리저리 찾아보다가 못 찾아서 0~14층 1 ~ 14호의 모든 값을 계산해서 찾아내는 것으로 해결을 하였다 2차원배열을 만들고 0층에는 1씩 늘어나는 값을 입력 1호에는 1 입력 2호에는 1씩 늘어나는 값을 입력 나머지 거주민 수를 계산하는 방법 1층 3호 = 0층 3호 + 1층 2호 apt[i][j] = apt[i - 1][j] + apt[i][j - 1]; 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); int[] .. 2021. 4. 7.
백준 1316번 그룹 단어 체커 자바 java 문제 풀이 연속해서 나타나는 단어를 체크하는 부분에서 어떻게 구현을 하지? 하는 생각에 시간이 걸렸다 먼저 소문자 알파벳 배열 groupWords를 만들고 (a ~ z까지 총 26개) 그룹 단어가 아닌것을 구분하기 위해서 groupWordsCheck 변수를 만들었다 2중 for문을 이용해서 연속해서 단어를 체크를 하고 groupWords에 값을 입력 for (int k = j + 1; k < words[i].length(); k++) { //그다음 단어가 같지 않다면 종료 if (words[i].charAt(j) != words[i].charAt(k)) { groupWords[(int)words[i].charAt(j) - 97] = count; break; } j++; count++; } 떨어진 단어가 .. 2021. 4. 6.
백준 1193번 분수찾기 자바 java 문제 풀이 처음에 문제를 보았을 땐 지그재그 순서를 이해를 못했다 2/1 -> 3/1 으로 왜 이쪽으로 이동을 하지? 라는 생각에 시간을 많이 소비했다 대각선으로 ↙ (빨간선) 이동하는 것을 보면 1/2 -> 2/1, 1/4 -> 2/3 -> 3/2 -> 4/1 i / j 이면 i + 1 / j - 1로 값이 변경이 된다 대각선으로 ↗ (파란선) 이동하는 것을 보면 3/1 -> 2/2 -> 1/3, 5/1 -> 4/2 -> 3/3 -> 2/4 -> 1/5 i / j 이면 i - 1 / j + 1 로 값이 변경이 된다 → 우측으로 이동하는 경우 (빨간선)는 ↗ 방향으로 이동이 안될 때 i / j 이면 i의 값이 0이 된다면 우측으로 이동하게 처리 ↓ 아래로 이동하는 경우 (파란선)는 ↙ 방향으로 이동이 안.. 2021. 4. 6.
반응형