특징알고리즘 문제를 해결하는 도구 중 하나인 실생활인덱스변환 이 사용되는 문제이다.입력되는 문자열 코드에서 다루기 쉬운 인덱스 혹은 정수로 변환하는 작업은 눈감고도 할 수 있을 정도로 연습해야 할 것만약 아래처럼 인덱스변환 함수를 따로 뺀다면, 메모리는 좀 더 사용하겠지만 구현하고자하는 로직에서 단순 작업인 실생활인덱스변환을 분리할 수 있다.static void solve() throws Exception { int n = scan.nextInt(); char[][] seats = new char[10][20]; for (int i = 0; i
분류 전체보기

특징구현 문제를 풀 때는 Top-Down 방식으로 먼저 정리해야 코드 윤곽이 잡힌다. 아래는 위의 Mermaid 다이어그램 작성 코드이다.graph TD subgraph 케이스반복 PET --> 행동{행동} subgraph 펫행동반복 행동 --> 운동 --> 사망시종료 행동 --> 밥주기 end 펫행동반복 --> 상태검사2[상태검사] end while(){ // 입력 종료 까지 반복 "0 0" // 케이스별 시작조건 초기화 while(){ // 케이스 종료 까지 반복 "# 0" & 종료 시 상태확인 // 몸무게 계산 }}static void solve() throws Exception { int iter = 1; while (true) { int ap..
특징문제를 해결할 때 컴퓨터적 사고를 트일 수 있는 좋은 문제라고 생각한다.문제 조건에서 등장하는 환전한 금액(N)을 문제 조건 그대로 환전한 금액이 아닌 호근이가 현재 세어봐야 할 것(지폐 or 묶음) 이라고 생각하도록 해야한다.static void solve() throws Exception { int N = scan.nextInt(); int M = scan.nextInt(); int count = 0; while(N > 0){ count += N; N /= M; } System.out.println(count);}
특징흔한 최대-최소값 갱신 문제이며, Java에서 최대-최솟값을 간단하게 구하려면 Math.min() or Math.max() 메서드를 사용할 수 있다.//1. if문 사용 for(;;){ if(minValue > now){ minValue = now; }}//2. min, max 메서드 사용for(;;){ minValue = Math.min(now, minValue);}그러나 이 문제에서는 갱신된 최댓값과 해당 최댓값의 위치(인덱스)를 알아야 하므로 min, max 메서드를 사용할 수 없다.코드static void solve() throws Exception { int max = 0; int maxi = 1; int maxj = 1; for (int i = 1; i
선행 문제A+B - 5 - 문제 링크 https://www.acmicpc.net/problem/10952- 풀이 링크 https://paralleldev.tistory.com/entry/백준-1000-자바JAVA-AB-5 특징이 문제의 특징인 “특정 조건을 만족할 때까지 입력 받기” 에서 특정 조건이 입력의 끝인 상황과 같다.EOF(End Of File)를 확인하는 코드를 작성해야하므로 읽은 입력 한줄이 null 인지 검사한다.static void solve() throws Exception { String input ; while((input = scan.nextLine()) != null){ int a = Integer.parseInt(input.split(" ")[0]); ..