본문 바로가기

전체 글

(115)
[백준] S16173 https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net # 아이디어 N이 2 또는 3이기 때문에 2*2 와 3*3의 지도가 존재한다. 따라서 2*2에서는 한 칸 단위로 오른쪽 이동 1회, 아래쪽 이동 1회가 일어나고 3*3에서는 한 칸 단위로 오른쪽 이동 2회, 아래쪽 이동 2회가 일어난다. 2*2에서의 모든 경우의 수: 2 3*3에서의 모든 경우의 수: 14 직접 if문을 이용해 체크해주자. public static void main(String[] a..
[백준] B11170 https://www.acmicpc.net/problem/11170 11170번: 0의 개수 N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다. www.acmicpc.net # 아이디어 n부터 m까지의 숫자의 0의 개수를 찾자. (0 9 10,11,12,13,14,15,16,17,18,19 20,21,22,23,24,25,26,27,28,29 ... 90,91,92,93,94,95,96,97,98,99 세 자릿수 = 9* ( (2+1*9) + 1*9) ) -> 180 100,101,102,103,104,105,106,107,108,109 110,111,112,113..
[Java] Scanner vs BufferedReader https://dlee0129.tistory.com/238 자바(JAVA) - Scanner & BufferedReader자바(JAVA) - Scanner & BufferedReader 자바를 처음 배울 때 사용자(키보드) 입력받기 위해 보통 Scanner 클래스를 사용합니다. 하지만 알고리즘을 풀기 시작하면서 백준에서 Scanner를 사용하여 입력을 받으dlee0129.tistory.com https://developer-yeony.tistory.com/146 자바 - 입출력(I/O), 스트림(stream), 바이트 기반 스트림(InputStream, OutputStream), 문자(텍스트) 기반 스자바 입출력(I/O)과 스트림(stream)에 대해서 알아보자. 입출력(I/O) I/O란 Input과 ..
[백준] B2460 https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net # 아이디어 내린 사람: down, 탄 사람: up - 기차에 가장 사람이 많은 순간은 사람이 내리기 전, 즉 모든 사람이 탔을 때이다. 따라서 total = -down +up으로 계산됨. 0 1 2 3 4 5 6 7 8 9 down 0 3 28 17 21 11 12 4 0 21 up 32 13 25 5 20 0 12 2 8 0 total 32 42 i > 0일 때, total[i] = to..
[백준] S17276 미완성 https://www.acmicpc.net/problem/17276 17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net # 아이디어 1. 45도씩 회전하므로 %계산을 통해 큰 각도를 제어하자. 2. 서, 북서, 북, 북동, 동, 남동, 남, 남서와 같이 8방향으로 나누었을 때 해당방향에 있는 원소만 회전하므로 이를 2차원배열[8][각 방향의 원소 개수]로 나타내려 하였다. 2-1. 8개의 방향대로 각 원소를 2차원 배열에 저장하려니 인덱스가 너무 제멋대로 왔다갔다 한다. 원하는대로 배열에 저장하지 못함.. ㅠㅠ (한 번에 다 넣으려 하지말고 각 방향마다 for문을 돌..
[백준] S1913 Q. https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net # 아이디어 // 위 오른쪽 아래 왼쪽 int[] dx = { -1, 0, 1, 0 }; int[] dy = { 0, 1, 0, -1 }; 항상 가운데에서 시작하고 번호가 매겨지는 방향은 순서대로 상, 우, 하, 좌 순이다. 각 방향마다 for문을 checkRound만큼 반복하며 동일한 방향으로 cnt를 채우자! cnt: 표 안의 숫자 checkRound: 동일한 방향으로 몇 번 for문을 반..
[백준] S20546 Q. https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net # 아이디어 준현(BNP) vs 성민(TIMING) BNP: 살 수 있을 때 전부 다 사기 => 14일 마지막 날에만 주식을 팜. TIMING: 3일 연속 하락하면 풀매수, 3일 연속 상승하면 풀매도 => 전 날 주가와 비교해서 3일 연속 상승하면 1, 3일 연속 하락하면 0. check() 함수. # 오답 Sol 1. - 오늘의 주가에 해당하는 만큼 돈이 없으면 밑..
[백준] B14467 Q. https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net # 아이디어 1. 소의 번호 인덱싱한 배열 생성 2. 배열 -1로 초기화 3. cow[] 의 값이 !(-1 또는 이전과 같은 값)이면 cnt++ 소의 인덱싱 0 1 2 3 4 5 6 7 8 9 -1 1 1 1 -1 0 -1 -1 -1 -1 0 0 0 1 => cow[2] : 1->0 cnt++, 0->1 cnt++ => cow[3] : 1->0 cnt++ 💯💯💯 ※ String 출력: Str..
[명품 JAVA Programming] 6일차 if문if(조건식){ 조건식이 참인 경우 실행}switch문switch(식){case 값1: 실행문장 1;case 값2: 실행 문장 2;default: 실행문장 n;}※ switch문의 값에는 정수, 문자, 문자열 리터럴 형식만 가능하다!!if문과 switch문의 차이점: 조건식과 식 String 클래스 문자열 비교는 .equals()함수를 사용해야 함!!!(6장의 String절에서 자세히 다룸)
[명품 JAVA Programming] 5일차 비트 논리 연산자연산자별칭내용a & bAND 연산두 비트 모두 1이면 1, 그렇지 않으면 0a | bOR 연산두 비트 모두 0이면 0, 그렇지 않으면 1a ^ bXOR 연산두 비트가 다르면 1, 같으면 0~ aNOT 연산1을 0으로, 0을 1로 변환 비트 시프트 연산: 저장 공간의 크기가 정해져 있으므로 시프트되는 방향에 따라 끝에 있는 비트는 사라지게 된다.시프트 연산자내용a 산술적 왼쪽 시프트: a의 각 비트를 왼쪽으로 b번 시프트한다. 최하위 비트의 빈자리는 항상 0으로 채운다.a >>> b논리적 오른쪽 시프트: a의 각 비트를 오른쪽으로 b번 시프트한다. 최상위 비트의 빈자리는 항상 0으로 채운다.a >> b산술적 오른쪽 시프트: a의 각 비트를 오른쪽으로 b번 시프트한다. 최상위 비트의 빈자리는..
[명품 JAVA Programming] 4일차 2.4 자바에서 키 입력System.in: 키보드 장치를 제어하고 입력을 받는 표준 입력 스트림 객체입력된 키를 단순한 바이트 정보로 응용프로그램에게 제공함-> 응용프로그램은 받은 바이트 정보를 문자나 숫자로 변환해야 함(불편함)==> 이때, 키보드에 입력된 키를 정수, 실수 등 사용자가 원하는 타입으로 변환해주는 Scanner 클래스를 사용함(편함)!! Scanner 클래스의 객체 생성import java.util.Scanner;Scanner scanner = new Scanner(System.in); Scanner 클래스의 주요 메소드메소드설명String next()다음 토큰을 문자열로 리턴String nextLine()'\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열 리턴void c..
[명품 JAVA Programming] 3일차 public static void main(String[] args) -> public, static, void가 필수임 camelCase 사용클래스: 첫글자 대문자변수, 메소드: 첫글자 소문자상수: 전부 대문자  2.3 자바의 데이터 타입(9개)- 기본 타입(8개)- 레퍼런스 타입(1개)배열에 대한 레퍼런스클래스에 대한 레퍼런스: ≒객체에 대한 주소값인터페이스에 대한 레퍼런스*문자열은 자바의 기본 타입에 속하지 않기 때문에, 자바 라이브러리에서 제공하는 String 클래스를 이용한다.  리터럴- 정수 리터럴유형설명사례10진수0으로 시작하지 않는 수15 -> 십진수 158진수0으로 시작하는 수015 -> 십진수 13(1*8 + 5 = 13)16진수0x로 시작하는 수0x15 -> 십진수 21(1*16 + ..