본문 바로가기

전체 글1068

[자바] 백준 11559 - Puyo Puyo (java) 문제 : boj11559 필요 알고리즘 개념 BFS (너비 우선 탐색) 등의 그래프탐색, 시뮬레이션 연결된 뿌요들을 파악하기 위해 BFS, DFS와 같은 그래프 탐색이 필요하다. 그 외에는 그냥 제시된대로 시뮬레이션을 돌려주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 그래프 탐색을 모른다면 BFS 글을 봐보자. 시뮬레이션으로 생각해본다면 다음의 과정을 진행하면 된다. 1. 연결된 4개이상의 뿌요들을 없앤다. 없앨.. 2023. 1. 16.
[자바] 백준 27194 - Meeting Near the Fountain (java) 문제 : boj27194 필요 알고리즘 개념 수학 수학문제이다! ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제를 한글로 정리해보면 '어딘가 갈껀데 거리는 n미터 남았고, T분 내로 가야댐. m미터는 x만큼의 미터퍼세크로 가고, 나머지는 y만큼의 미터퍼세크로 가야댐. 이 때 T분 내로 도착 가능하면 0, 아니라면 남은 시간을 올림해서 출력' 이다. 그럼 n미터 만큼 이동할 때 걸리는 시간 R은 아래와 같다. R이 T보다 .. 2023. 1. 16.
[쇼미더코드 3회] 백준 27212 - 미팅 (자바 java) 문제 : boj27212 필요 알고리즘 개념 DP (동적 계획법) 약간 생각이 필요한 DP 문제였다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 쇼미더코드 3회 당시 1, 2번 15분만에 풀어놓고 이것만 1시간정도 걸렸다. 생긴게 이분 그래프 형태라 그래프쪽으로 자꾸 생각해보다가 오래걸렸다. 확실히 난 DP에 약한 것 같다 ㅠ. DP로 풀면 되겠는데?! 라고 깨닿기까지 너무 오래걸렸다 ㅋㅋ 입력이 아래와 같다고 해보자. .. 2023. 1. 15.
[쇼미더코드 3회] 백준 27211 - 도넛 행성 (자바 java) 문제 : boj27211 필요 알고리즘 개념 BFS (너비 우선 탐색) 약~간 응용된 BFS 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 BFS를 모른다면 'BFS 알고리즘 (너비 우선 탐색) - 배열 BFS, 그래프 BFS 글'을 참고해보자. 사실 위 글을 이해했다면 그냥 BFS와 다를바가 없다. 그냥 NxM 사이즈를 넘어갔을 때, 반대편으로 이동만 가능하도록 해두면 된다. 입력으로 주어진 지도 정보를 가로세로.. 2023. 1. 15.
[쇼미더코드 3회] 백준 27210 - 신을 모시는 사당 (자바 java) 문제 : boj27210 필요 알고리즘 개념 구현, DP 이전까지의 결과를 가지고 판단하는 DP 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 내 경우엔 좀 독특하게 푼 것 같다. 왼쪽과 오른쪽으로 기준을 나누어서 진행했다. 1. 왼쪽을 기준으로 생각하기 왼쪽인 돌상을 +1, 오른쪽인 돌상을 -1이라고 해보자. 그럼 예제 입력 1은 다음과 같다. '1 1 -1 1 -1' 그리고 왼쪽부터 차례대로 더하다가 음수가 나.. 2023. 1. 15.
[자바] 백준 27162 - Yacht Dice (java) 문제 : boj27162 필요 알고리즘 개념 많은 조건 분기, 구현, 브루트포스 많은 조건을 분기해줘야 하는 구현문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 한 함수에서 if문으로 모두 처리하게 되면 디버깅이 쉽지 않다. 내 경우엔 클래스로 구성을 나누었다. Pedigree 라는 인터페이스가 있는데, 각 족보를 뜻한다. 내부에 maxScore(int[] arr)만 있고 해당 Pedgree의 구현체로 얻을 수 있는.. 2023. 1. 15.
[자바] 백준 27161 - 크레이지 타임 (java) 문제 : boj27161 필요 알고리즘 개념 구현, 시뮬레이션 문제에 제시된 방법대로 입력값에 따라 시뮬레이션을 진행하면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제에 제시된 방식대로 구현해서 시뮬레이션을 돌려주면 된다. 따라서 코드에 주석으로 설명하는게 더 나을 것 같다. int cur = 0;// 현재 위치이다. 처음엔 어차피+1 되서 '1'이 될 테니 0으로 뒀다. boolean isReverse = fa.. 2023. 1. 15.
[자바] 백준 27160 - 할리갈리 (java) 문제 : boj27160 필요 알고리즘 개념 문자열, 구현 문자열을 파싱해 나온대로 구현해주는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 각 과일의 종류별로 입력된 과일의 개수를 모두 더해준다. 과일의 종류별로 봤을 때 더한 값이 5인게 하나라도 있다면 "YES"를 출력해주면 되는 문제이다. 이 때 과일의 종류는 문자열이므로 HashMap로 과일의 종류 문자열을 key, 합산 개수를 value로 하는 Map 자.. 2023. 1. 15.
[자바] 백준 27159 - 노 땡스! (java) 문제 : boj27159 필요 알고리즘 개념 구현 제시된 조건에 따라 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 N개의 입력 앞에 0을 추가하고 생각해보자. int[] arr = [0, 6, 7, 10, 12, 13, 14, 15, 20, 21, 22] 와 같이 배열이 있다고 해보자. 그럼 arr[x]에서 'x=1부터 배열끝까지' 차례대로 보면서, arr[x-1] != arr[x]-1 이라면 연속된 그룹.. 2023. 1. 15.
읽은 책 소감 - 오브젝트 대학생때 이후로 첫 스터디였다. 대학생때 스터디에 좋은 인상이 없어서 혼자 하는걸 좋아했는데, 공부해야할게 늘어나다보니 좀 늘어지는 경향이 있어 스스로에게 약간의 강제성이 필요했다. 마침 작년(2022년) 11월에 좋은 스터디팀에 들어갈 수 있어서 오브젝트를 읽게 되었다. 또 스터디에 대해 매우 좋은 인상이 생겨서 이후로는 매주 3개의 스터디를 기준으로 부족하면 내가 만들면서 진행하고 있다. 오브젝트는 객체지향의 사실과 오해(객사오)를 쓴 조용호님이 객사오 다음으로 쓰신 책이다. 내 경우엔 오브젝트를 보기 전에 객사오를 읽다가 포기했었는데, 비유 위주로 되어 있는 내용을 정확히 이해하기 어려웠기 때문이다. 개인적으로 명확히 이해하고 넘어가는걸 좋아하다보니 너무 어려웠다. 오브젝트는 코드로 설명이 되어 있.. 2023. 1. 15.