목록분류 전체보기 (159)
다희의 코딩 성장일기
[ 문제 ] [백준] 23290. 마법사 상어와 복제 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/23290 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net # 접근 방법 및 풀이 일단 내가 다른 사람들 풀이와 다른점은 물고기 리스트를 3차원 배열로 표현하지 않고 HashMap으로 관리했다. static HashMap fish; 를 선언해서 key값에 Point 클래스로 물고기의 위치 Point.x, Point.y로 만들고, 해당 위..
[ 문제 ] [백준] 23288. 주사위 굴리기 2 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net # 접근 방법 및 풀이 한번에 풀고 너무 속상했던 문제다. 왜 현장에서는 못 풀었을까.. 사실 아이디어를 떠올리지 못했다. 주사위 굴리기를 한번 풀어봤음에도 떠올리기가 어려운 아이디어였나보다. 아무튼 주사위 굴리기를 풀어본 사람이라면 비교적 쉽게 풀 수 있는 문제다. 이 문제의 핵심은 주사위 도면..
자바는 하이브리드 언어 인터프리터 언어 = 소스코드 바로 실행가능한 언어. 컴파일 필요없음 파이썬, js 자바는 컴파일과 인터프리터 언어 둘다 혼합한 하이브리드언어! 바이트코드가 JVM에 실행될 때는 인터프리터 언어임 자바는 semi boolean을 지원하지 않는다. semi boolean은 숫자값 0과 1을 이용해서 참과 거짓 표현이 가능한 것. 자바는 이를 지원하지 않으므로 통시적으로 true, false표현 해야함 char는 2byte. 유니코드 기반이므로 2byte인 한국어도 입력가능 자바는 타입이 없으면 표현 못한다. 상수도 다 리터럴 타입이 있다! 리터럴(literal) : 소스 코드 내에 데이터 값 그대로 쓴 상수 자바 기본 리터럴 정수형 int, 실수형 double → double인 이유는..
[ 문제 ] [백준] 10597. 순열장난 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/10597 10597번: 순열장난 kriii는 1부터 N까지의 수로 이루어진 순열을 파일로 저장해 놓았다. 모든 수는 10진수로 이루어져 있고, 모두 공백으로 분리되어 있다. 그런데 sujin이 그 파일의 모든 공백을 지워버렸다! kriii가 순 www.acmicpc.net # 접근 방법 및 풀이 dfs + 백트래킹으로 풀었다. 처음에 아이디어 떠올리기가 힘들었는데 범위를 보고 아이디어를 떠올렸다. 순열은 최소 1~50개의 수로 이루어져있고, 1부터 N까지의 수로 이루어졌으므로 최대로 나올 수 있는 숫자가 50이다. 즉 숫자의 범위는 1~50이므로 자리수는 1자리 아님 2자..
[ 문제 ] [백준] 20922. 겹치는 건 싫어 (자바 JAVA) 문제 링크 : https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net # 접근 방법 및 풀이 투포인터 연습문제로 너무 좋은 문제다. 처음에 풀고 4퍼에서 틀려서 반례 찾았는데 다행히 질문검색에 어떤분이 반례 잔뜩 올려주셔서 풀었다. 투포인터는 start포인터와 end포인터를 어디서 시작하고, 각각의 포인터를 어떤 조건일때 움직일지 잘 생각해보아야한다. 코드 자체는 짧게 나오지만,..
commit = 변경사항을 새로운 버전으로 저장 working dir = 사람이 작업하는 공간 .git = 원격저장소 클론 받으면 생기는 폴더 HEAD : 현재 working dir가 어떤 버전과 같은지를 가리키는 포인터, 헤드는 기본적으로 main을 가리킴 staget Area ( = add) = 선택적으로 commit 찍기 위해서, 변경사항을 담아두는 장바구니 대기 장소 Main : 가장 마지막에 작업한 버전을 가리키는 포인터 origin = 원격저장소 push = 원격저장소에 commit 업로드 checkout = 헤드 옮기는 명령어, 다른 버전 가리킴. 복귀할 경우? head를 main 브런치로 checkout함. 물론 젤 최신의 버전을 찾아서 해당 버전으로 checkout해도 되지만, 새로운 최..