본문 바로가기

BOJ749

[쇼미더코드 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.
[자바] 백준 13699 - 점화식 (java) 문제 : boj13699 필요 알고리즘 개념 다이나믹 프로그래밍 (동적 계획법, DP) DP 문제이긴한데, 그냥 memoization 문제라고 보면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 t(n)을 계산하기 위해서는 t(0)부터 t(n-1) 까지의 계산 결과가 모두 필요한데, 이걸 매번 점화식대로 구해주면 당연히 시간초과가 될 것이다. 그러니 매번 x = 1부터 35까지 t(x)를 순서대로 계산해주고, t(x).. 2023. 1. 14.
[자바] 백준 17609 - 회문 (java) 문제 : boj17609 필요 알고리즘 개념 두 포인터 (투 포인터) 회문이 아닐 시 예외처리가 들어가긴 하지만, 기본은 회문을 검사하는 투 포인터 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 기본적인 회문은 아래와 같이 찾을 수 있다. 양끝에서 두개의 포인터가 중간으로 오면서 두 포인터가 가르키는 값이 동일한지 확인하는 것이다. 근데 이 문제는 1번은 건너띄어도 된다. 어떻게 처리하면 될까? summmmu.. 2023. 1. 13.
[자바] 백준 27157, 26081 - GGANALi, 곰곰이와 GGANALi (java) 문제 : boj27157, boj26081 ... (생략) 필요 알고리즘 개념 트리, 구현 기본적으로 트리 구조를 만들고 탐색할 줄은 알아야 한다. 하지만 이것대문에 플래인건 아니고, 그냥 구현이 복잡해서 플래티어이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 RPG Extreme 문제가 생각나는 구현 플래 문제이다. 트리구조로 구현해야 하므로 RPG Extreme보단 구현 난이도가 좀 더 높은 것 같다. 다만 개념적으.. 2023. 1. 13.