목록분류 전체보기 (241)
곽로그
문제 www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 풀이 문제를 두 부분으로 나눌 수 있다. 사다리를 놓는다 -> i번 세로선의 결과가 i번이 나오는지 확인한다 이다. 먼저 사다리를 놓는 경우를 보자. 사다리는 최소 0개 부터 최대 3개까지 놓을 수 있다. 그 중 조건을 만족하는 최소값을 구하는 거다. 위의 문제는 NM과 K(1)과 비슷하다. 현재까지 뽑은 사다리의 갯수와 최솟값을 비교하는 거다. 만약 현재까지 뽑은 사다리의 갯수가 최솟값이상이면 더이상 ..
jsp로 계산기를 만든다고 할 때 코드는 아래와 같다. 계산기 + + + + 이 jsp 파일의 class파일을 보면
문제풀이 "칸을 뽑는다"라는 행위가 반복된다. 이 행위가 언제까지 반복되는지를 보면, 현재까지 뽑은 칸의 갯수(pickCount)가 뽑아야하는 칸의 갯수(K)와 같아질 때까지 반복한다. pickCount와 K가 같으면, 현재까지의 칸의 합과 max 값을 비교하면 된다. 위의 로직을 재귀함수로 짰을 때의 구조는 아래와 같다. public static void pickCell(int pickCount, int sum) { if(pickCount>K) { return; } else if(pickCount ==K) { //최댓값과 현재까지의 합을 비교한다 } else { //칸을 뽑는다 } } 이제 칸을 뽑는 경우를 생각해보자. 현재 호출된 함수에서 뽑을 수 있는 칸을 생각해보자. 재귀함수를 가지치기라고 생각한..
문제분석 1부터 N까지 M개를 뽑는데 중복을 허락하지 않고, 오름차순으로 뽑아야한다. 재귀함수 위의 문장을 "숫자를 뽑는다"를 중심으로 생각해보자. 숫자를 언제까지 뽑아야하나 ? 현재까지 뽑은 숫자의 갯수가 M개 미만이면 숫자를 뽑는다 뽑은 숫자의 갯수가 M개이면? 현재까지 뽑은 숫자를 출력한다 로 나타낼 수 있다. * 슷자를 뽑는다/ 숫자를 출력한다의 기준이 되는 상황을 생각해볼 것 → 현재까지 뽑은 숫자의 갯수 public static void pickNumber(뽑아야하는 숫자의 갯수, 현재까지 뽑은 숫자의 갯수) { if(현재까지 뽑은 숫자의 갯수 = 뽑아야 하는 숫자의 갯수) { 현재까지 뽑은 숫자를 출력한다 } else if(현재까지 뽑은 숫자의 갯수 > 뽑아야 하는 숫자의 갯수) { 유효하지..
1. TimeStamp클래스 @MappedSuperclass //상속했을 때, 칼럼으로 인식하게 한다. @EntityListeners(AuditingEntityListener.class) //생성, 수정시간을 자동으로 반영 public class TimeStamp { @CreatedDate private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime modifiedAt; } 2. TimeStamp를 상속받은 Person클래스 @NoArgsConstructor @Entity public class Person extneds TimeStamp { @GeneratedValue(strategy = GenerationType.AUTO) @Id ..
실수모음 1. 이상한 while 코드 //N보다 큰 곳에서 N쪽으로 접근 int n = N; while(!canPush(n)) { ++n; } int pushCount = getDigit(n) + (n-N); min = Math.min(min, pushCount); 원래의도 n을 누를 수 없으면 하나씩 증가시킨다. while문을 빠져나오는 경우에는 누를 수 있는 경우라 생각하고 빠져나온 n에 대해서 최소누름횟수를 구함 생각하지 못한 것 1) while종료 조건 2) n이 음수가 되는 경우 2. 0 조건을 빼먹음 public static boolean canPush(int n) { while(n>0) { int temp = n%10; if(broken[temp]) { return false; } n = n..
alwaysbemoon.tistory.com/170 [백준 3085, Java] 사탕 게임 문제 www.acmicpc.net/problem/3085 3085번: 사탕 게임 첫째 줄에 상근이가 먹을 수 있는 사탕의 최대 개수를 출력한다. www.acmicpc.net 풀이 1. 행을 순회하면서 인접한/같은 색의 칸을 탐색한다 2. 인접한/ 같. alwaysbemoon.tistory.com 위 포스팅에서 코드를 좀 개선 했다. 좌-우/ 상-하 인접하는 것을 , 동,남방향에 대한 좌표배열을( int[] dr = {0,1,}, int[] dc ={1,0}) 선언해서 for 문으로 합쳤다. import java.io.BufferedReader; import java.io.BufferedWriter; import j..