여니의 취준 준비/코딩테스트 (Java) 45

[14500] 테트로미노 in Java

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 백트래킹을 사용하여 폴리오미노 모양을 만들어주었던 문제 이때 방문했던 지점에서 깊이가 4가 되기전까지는 무조건 상하좌우 방향을 계속해서 탐색해줘야한다. 그래서 dfs 내에서는 3중 for문을 돌려야함. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 package week5; import java.io.BufferedReader; import java.io.IOExc..

[DFS/BFS] 마름모 모양 만들기

https://eboong.tistory.com/610 [*5644*] 무선 충전 in Java (Feat. SWEA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.. eboong.tistory.com 위 문제를 dfs로 풀다가 막혀서 이번 기회에 DFS와 BFS로 모두 구현해보기로 결정! 격자 크기 : 10 X 10 길이가 4인 마름모 그리기! 1. DFS (1) visited 위치가 nx, ny 기준으로 변경될 때 HTML 삽입 미리보기할 수 없..

[15787] 기차가 어둠을 헤치고 은하수를 in Java

https://www.acmicpc.net/problem/15787 15787번: 기차가 어둠을 헤치고 은하수를 입력의 첫째 줄에 기차의 수 N(1 ≤ N ≤ 100000)과 명령의 수 M(1 ≤ M ≤ 100000)가 주어진다. 이후 두 번째 줄부터 M+1번째 줄까지 각 줄에 명령이 주어진다. www.acmicpc.net 문제 요약 기차 개수 : N개 좌석 수 :20개 명령 개수 : M개 명령 종류 4가지 1. i번째 기차, x번째 좌석에 사람 태우기 (이미 사람 있으면 x) 2. i번째 기차, x번째 좌석에 앉은 사람 하차 (사람이 없으면 x) 3. i번째 기차, k번째 앉은 사람 -> k+1번째로 고객 모두 이동, 단 20번째 자리에 사람이 앉아 있었다면 이 사람은 하차한다. 4. i번째 기차, k..

[*3109*] 빵집 in Java ( + Backtracking, DFS )

https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 문제 요약 격자 크기 :R X C map[r][0] = 근처 빵집의 가스관 map[r][c-1]= 원웅이 빵집 건물에는 파이프를 놓을 수 없다. . : 빈칸, x :건물 파이프라인 시작위치 : 첫째 열에서 시작 파이프라인 도착위치 : 마지막 열 연결 가능 위치 :↗, →, ↘ 파이프라인의 경로는 겹칠 수 없고, 서로 접할수도 없다. == 각 칸을 지나는 파이프는 하나여야한다. 가스를 되도록 많이 훔치려고 한다. ..

[*1992*] 쿼드트리 in Java

https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제 접근 방식 -> 왼쪽 상단, 오른쪽 상단, 왼쪽 하단, 오른쪽 하단이 모두 0이면 : 0으로 압축 -> 왼쪽 상단, 오른쪽 상단, 왼쪽 하단, 오른쪽 하단이 모두 1이면 : 1으로 압축 -> 왼쪽 상단(0), 오른쪽 상단(1), 왼쪽 하단(0), 오른쪽 하단(1), 즉 0과 1이 섞여 있는 경우면: 0101로 출력 시행 착오 -> 재귀함수를 사용해야 한다는 건 파악했으나 재귀함수..

[*5644*] 무선 충전 in Java (Feat. SWEA)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 요약 정리 최적의 BC를 선택하기 행과 열이 바뀌어있는 문제 단, BC 1과 BC 3의 충전 범위에 모두 속하기 때문에, 이 위치에서는 두 BC 중 하나를 선택하여 접속할 수 있다. 1. 이동 가능 범위 구하기 -> bfs bfs 깊이1 == C가 1일때 bfs 깊이2 = C가 2일때 2. 배터리 충전 매초마다 특정 BC의 충전 범위에 안에 들어오면 해당 BC에 접속이 가능 접속한 BC의 성능..

[*1828*] 냉장고 in Java (feat. 정올, Comparator, Comparable 차이 및 설명)

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&code=1828&sca=99 JUNGOL www.jungol.co.kr https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hwadla&logNo=220885232086 [Java][Jungol] 문제풀기 - 기초다지기 출력 자가진단 1 [Java][Jungol] 문제풀기 - 기초다지기 출력 자가진단 1 자바 언어로 정올문제 풀기 시작합니다. 재미있... blog.naver.com -> 정올 코드 제출시 지켜야하는 클래스명 (Main) 해당 문제와 비슷한 문제 https://www.acmicpc.net/problem/1931 1931번: 회..

[20207] 달력 in Java

https://www.acmicpc.net/problem/20207 20207번: 달력 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력에 표시해놨다. 여름이 거의 끝나가자 장 www.acmicpc.net https://eboong.tistory.com/322 [n20207] 달력 https://www.acmicpc.net/problem/20207 20207번: 달력 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력 eboong.tistory.com 로직은 위에 나와있는 링크와 똑같이 풀었다! 언어만 자바로 바뀌어있을..

[17471] 게리맨더링 in Java

https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 문제 요약 선거구 : 2개 (1개의 구역이라도 포함해야함, 한 선거구 내에 있는 구역은 모두 연결되어있어야함, 다른 선거구의 구역과는 연결될 수 없다.) 구역 : N개 (각 구역은 2개의 선거구 중 하나에 포함되어야한다.) 같은 선거구 내에서 A-C-B , A가 B랑 바로 연결되는 게 아니더라도, 또다른 인접한 구역을 통해 갈 수 있다면? 두 구역(A,B)는 연결되어있다고 할 수 있다. 두 선거구에 포함된 인구의 차이..

[17281]⚾ in Java

https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 접근 방식 (1). 4번 타자는 무조건 1번 선수 타석 순서 정하는 순열 함수를 수행하기 전에 4번타자 자리는 1번 선수로 고정시켜놓는다. (2). 순열 함수로 타석 순서를 정한다. 이때 selected[i]=cnt가 들어가야한다. HTML 삽입 미리보기할 수 없는 소스 (3). 타순 정했으니 게임 시작 1. 한 이닝에 3아웃 -> 종료 (이닝 교체 == 공격과 수비 교체) 2. 경기 시작 전, 타순을..