목록전체 글 (153)
Dazzling 개발 노트
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bQ8QI6/btsqJS97Cnu/z3ECSCP9Fo5492KxJKAEwk/img.png)
[백준] 17822 - 원판 돌리기 (Java) 문제 https://www.acmicpc.net/problem/17822 풀이/후기 내가 문제를 풀면서 찾은 포인트, 메모들 - 배열에서 양 끝 값들의 인접 처리 : 어려울 줄 알았는데 그냥 맨 끝과 1 비교하면 됨 - 인접한 항목이 존재하지 않음 판단 : before배열 만들어서 변경 전 후 비교 카운트로 해결함. 어차피 초기화하느라 배열 한 번 더 탐색해야해서 그 반복문 그대로 이용 - 평균 구할 때 double 이용 : 연산에 들어가는 숫자들도 double형태로 해야됨. - 삭제하는 부분 DFS/BFS로 하지 않아도 됨. 유사하게 check[][]를 이용해서 풀었음 - 회전시킬 때 괜히 반복문 한 번씩 아끼려다가 arr[i] = temp 이런 짓 해서..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bv1KzY/btsqDQcCJFK/zI8YDp4gBhkf6Si0HGsMGk/img.png)
[백준] 21609 - 상어 중학교 (Java) 문제 https://www.acmicpc.net/problem/21609 풀이/후기 내가 처음 풀었던 풀이는 visited에 블록 그룹 번호를 부여해서 해당 그룹이 가장 크면 그룹 번호를 이용해 삭제하는 로직을 이용했다. 근데 이렇게 하니 무지개 블록 처리가 애매해졌다. list를 이용해서 가장 큰 블록 그룹에서 사용한 무지개 블록을 담아두고 추후에 삭제하는 방향으로 수정도 해보았는데 계속 오답처리가 되더라. 이 방법으로 꼭 완성해보고 싶었는데 결국 방향을 바꿨다. visited는 boolean으로 둔다 매 블록 그룹을 찾기 전에 무지개 블록의 visited는 다시 false로 돌려준다. 이 경우 나중에 블록을 제거할 때의 방법이 고민이었는데 그냥 BFS를..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/buXmtR/btsqB9wU1fR/dMrbwesBNj2EKuVjTzbCk1/img.png)
[백준] 15988 - 1,2,3 더하기 3 (Java) 문제 https://www.acmicpc.net/problem/15988 풀이/후기 이것 또한 9095 문제를 풀었다면 점화식은 동일하게 사용할 수 있다. 근데 몇 번을 제출해도 계속 오답처리가 됨. 포인트는 자료형이었는데, 처음에 인식하고 있었으나 Integer.MAX_VALUE 값을 찍어보니 문제에서 다루는 수가 더 적은 것 같아서 int를 사용해서 틀린 것. (당연하지 연산 결과가 훨씬 크게 나오는데 난 무슨 생각을 한걸까?) 아무튼 자료형을 long으로 바꿔주면 아주 편안해진다 그리고 실행시간이 좀 걸리길래 코드를 좀 수정했는데 dp 반복문은 어차피 N과 별도로 실행되어도 되는 부분이므로 테스트케이스 돌아가는 반복문 밖에서 실행하고 해당 반..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vNTU0/btsqtXE0BVw/RojZS33UXVEv8KuBRRxj4K/img.png)
[백준] 12101 - 1,2,3 더하기 2 (Java) 문제 https://www.acmicpc.net/problem/12101 풀이/후기 1,2,3 더하기 문제 중 9095번 문제를 복습하고 풀어보았다. 그치만 9095번에서 패턴을 찾아낸 것으로만은 풀지 못했다. ArrayList를 이용해 문자열 배열을 활용해서 푸는 방법이 포인트였던 것 같다. 수식을 출력해내는 부분도 좀 헷갈렸는데 아래 그림을 보니 그냥 똑같이 생각해주면 된다는 것을 깨달았다. 역시 직접 눈으로 봐야 이해가 가는 편,,^^; 코드 package DynamicProgramming; import java.io.*; import java.util.*; public class Problem12101 { public static void ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/buuJgW/btsp7AJWeFU/nZcmFnfhFj5IlIvzDogOj0/img.png)
[백준] 11660 - 구간 합 구하기 5(Java) 문제 https://www.acmicpc.net/problem/11660 풀이/후기 예전에 softeer에서였나? 구간합 구하는 문제 풀었을 때와 유사한 문제였던 것 같다. 배열을 입력받을 때부터 누적합을 저장해 두고 원하는 위치의 마지막 점 + (시작점-1) 을 행별로 더해주면 된다. 말보다 소스코드로 이해하는 것이 더 쉽다. 오랜만에 바로 문제를 풀어내니 다시 자신감이 생긴다@ 코드 package DynamicProgramming; import java.io.*; import java.util.*; public class Problem11660 { public static void main(String[] args) throws IOExceptio..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dQy1pF/btsp7qGpI7T/BnnGdH0krz2bpldfPxN6p1/img.png)
[Softeer] 408 - 8단 변속기 (Java) 문제 https://softeer.ai/practice/info.do?idx=1&eid=408 풀이/후기 단순한 문제였다. 숫자가 연속적인지 아닌지 판단하여 출력하면 된다. 코드 package Softeer; import java.util.*; import java.io.*; public class lv2_408 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] input = br.readLine().split(" "); int[] inp = n..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/epiYwj/btsp0CBhmqj/WcDwYWAOVcCDQzibmkjuEk/img.png)
[Softeer] 413 - 지도 자동 구축 (Java) 문제 https://softeer.ai/practice/info.do?idx=1&eid=413 풀이/후기 점의 개수가 사각형의 개수 + 1의 제곱개인 점을 활용하여 풀이 사각형의 개수는 2의 제곱으로 증가함 제곱 연산자 Math.pow()기억하기 Double - String 등 다양한 형변형 기억하기 코드 package Softeer; import java.io.*; public class lv2_413 { //지도 자동 구축 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Syst..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d2dafa/btspGKflzhq/wi5lgviKKDSS1a5pWgwKc1/img.png)
[Softeer] 장애물 인식 프로그램 (Java) 문제 https://softeer.ai/practice/info.do?idx=1&eid=409&sw_prbl_sbms_sn=232380 풀이/후기 하... BFS 문제인거 바로 파악해서 자신있게 풀기 시작했는데 정말 한참 부족하다는 것을 느꼈다... 일단 visited를 구현할 때 int로 할지, boolean으로 할지 감을 못잡겠다. BFS문제에서 어떤 값을 원하냐에 따라 달라지는 것 같은데 이전에 visited외에 별도로 카운트 세다가 고생한 이후로 visited에 +1을 해서 카운트하는 방식을 선호하게 되었는데, 이번엔 또 boolean으로 풀고 별도로 카운트를 하는 방식으로 완성했다. 아무래도 이코드 저코드 참고하고 그 디테일까지 파악하지 못하니..