본문 바로가기

PS831

[자바] 백준 4055 - 파티가 좋아 파티가 좋아 (java) 문제 : boj4055 필요 알고리즘 개념 정렬, 그리디 더 범위가 좁은 것 부터 차례차례 골라나가면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 문제에서 좀 애매한 부분부터 짚고 넘어가보자. - "시작시간과 끝시간이 같은 파티가 주어질 수도 있다." -> 최소 30분간은 참여해야하므로, 참여할 수 없는 파티이다. 버려도 되는 입력값이다. - "아무리 늦게 끝나도 24시에는 끝나게 된다." -> 따라서 .. 2023. 1. 20.
[자바] 백준 25841 - Digit Count (java) 문제 : boj25841 필요 알고리즘 개념 문자열, 구현 문자열을 적절히 다뤄서 주어진 조건대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 최악의 경우 1000부터 9999까지이고, 각 숫자는 4자리밖에 안된다. 그러므로 1000부터 9999까지 모든 숫자를 보면서 모든 자리수에 대해 확인해봐도 O(9000*4) 면 된다! 1. 시작숫자와 끝 숫자를 입력받고, 카운팅하려는 문자를 받는다. 2. 시작숫자.. 2023. 1. 19.
[자바] 백준 27245 - 방 (java) 문제 : boj27245 필요 알고리즘 개념 수학 수학문제긴 한데, 애초에 번역이 문제다 ㅋㅋ ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제 자체 풀이는 필요없는게, 주어진대로 풀면 된다. 다만 번역기로 나온걸 어떻게 이해하냐가 문제다. 입력으로 한 줄 씩 w, l, h가 주어진다. w와 l 중 더 작은 수를 a라 하고, 드 큰 수를 b라고 해보자. 이 때, 2a보다 b가 작거나 같아야 하고, a가 h보다 2배이상 크면.. 2023. 1. 17.
[자바] 백준 16768 - Mooyo Mooyo (java) 문제 : boj16768 필요 알고리즘 개념 BFS (너비 우선 탐색) 등의 그래프탐색, 시뮬레이션 연결된 뿌요들을 파악하기 위해 BFS, DFS와 같은 그래프 탐색이 필요하다. 그 외에는 그냥 제시된대로 시뮬레이션을 돌려주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 그래프 탐색을 모른다면 BFS 글을 봐보자. 백준 11559 - Puyo Puyo의 아주 약간 상위호환이다. 개념은 완전히 동일하다.그러니 이 문제.. 2023. 1. 16.
[자바] 백준 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.