Ad Hoc14 [자바] 백준 25194 - 결전의 금요일 (boj java) 문제 : boj25194 우선 문제를 이해했다면, N개의 정수에서 1~N개를 더한 여러 경우의 수 중 7로 나눈 나머지가 4가 되는 경우가 있는지 찾는 문제라고 이해할 수 있다. 하지만 이걸 구하는 방법을 찾긴 좀 어려웠다. 단순히 찾아보면 O(1000!) 이기 때문에 말도 안되는 경우의 수가 나오기 때문이다. 내 기본 아이디어는 나머지 연산의 분배법칙을 활용하는 것이었다. 나머지 연산의 경우 다음의 분배법칙을 따른다. 즉, 100000이하의 큰 'A일'들이 입력으로 들어오지만, 결국 그냥 미리 7로 나눠놔도 결과를 구하는데에 지장이 없다는 얘기이다. 또한 7로 나눈 나머지가 0이 되는 경우는 아예 필요가 없는 경우이다(원점임). 따라서 버려준다. 그렇게 되면 이 문제는 1~6 까지의 숫자가 각각 여러개.. 2022. 5. 16. 백준 2041 자바 - 숫자채우기 (boj 2041 java) 문제 : boj2041 배열이랑 반복문만 알면 풀 수 있는 순수 아이디어 문제인데도 다이아 티어를 받은 무서운 문제이다. 별다른 알고리즘적 지식이 필요하지 않으므로 풀기 전에 이 글을 보면 얻어갈 수 있는건 아이디어 뿐이다. 따라서 밑으로 내려 풀이를 보자마자 스포가 되므로, 최대한 스스로 풀어보고 풀이를 보는걸 추천한다(하지만 스스로 풀어봤다면 더이상 풀이가 필요없지) 백준1187번을 같이 풀었던 선배같은 후배와 같이 풀었다. 1187때는 결국 난 못풀었고 후배의 도움으로 풀 수 있었지만 이번엔 내가 먼저 풀이를 찾았다. 기분 좋다. ----- 풀이 스포주의 ----- 내 경우엔 여러 방식으로 해보다가, 결국 해답을 찾은 키 아이디어는 배열에 어떤 수가 들어갈지 고민하기 보다, 차이를 어떻게 배치할지 .. 2022. 4. 7. 백준 15927 자바 - 회문은 회문아니야!! (boj 15927 java) 문제 : boj15927 혹시 고민을 많이 했다면, 풀이를 볼 시 상당히 짜증날 수 있다. 스포성이 다분한 풀이 이므로 최대한 직접 풀어보는걸 추천한다. ------ 입력으로 들어온 문자열은 이하의 3가지 경우가 존재한다. A. 애초에 팰린드롬이 아님 (e.g. 'abcd') B. 팰린드롬이긴한데, 모든 문자열이 동일함 (e.g. 'aaa') C. 모든 문자열이 동일한게 아닌 팰린드롬 (e.g. 'aabaa') 각각 어떻게 처리할지 살펴보면 된다. A -> 처음부터 팰린드롬이 아니므로 가장 긴 팰린드롬이 아닌 부분문자열은 자기 자신이다. 따라서 입력 문자열의 길이를 출력하면 된다. B -> 이 경우 부분문자열 중 팰린드롬이 아닌게 존재할 수 없다. 따라서 -1을 출력하면 된다. 참고로 'a' 와 같이 문.. 2022. 4. 4. 백준 18242 자바 - 네모네모 시력검사 (BOJ 18242 JAVA) 문제 : boj18242 몇x몇 짜리 사각형인지만 알면 어차피 정해진 위치에 빈 칸이 있으므로 연산을 통해 알아낼 수 있다. 이에 따라 로직을 다음과 같이 정해서 풀었다. 1. '#'이 처음 나온 줄을 찾는다. 찾은 줄에서 마지막 '#'과 첫번째 '#'의 차이를 통해 길이를 알아내고, 그 중간에 '.'이 있다면 UP 이다. 2. '1'에서 길이를 알아냈으므로 [해당 길이-2/2]만큼은 쓸모없으므로 입력을 버리고, 중앙 행을 찾는다. 여기서 좌측과 우측을 확인하여 LEFT, RIGHT를 알아낼 수 있고 마지막까지 갈 필요없이 아직까지 안나왔다면 DOWN을 출력하면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader;.. 2022. 1. 30. 이전 1 2 다음