반응형

백준/완전탐색 4

[백준] 5052 : 전화번호 목록

https://www.acmicpc.net/problem/5052 [풀이과정]N이 10,000이어서 문자의 길이를 오름차순으로 정렬 후 비교해줬다.처음엔 StringBuilder를 사용하고 subString, equals 메서드를 사용해서 비교를 해줬는데 시간초과가 났다.그래서 고려한 부분은 1. 정렬 기준길이가 아닌 사전순으로 정렬을 했다. 예로 ["123", "1234", "234"] 이렇게 정렬이 되기 때문에, 앞 뒤의 두 문자열만 비교해주면 쉽게 정답을 알 수 있다.-> Arrays.sort는 O(N logN)의 시간복잡도-> 2개씩 비교하므로 총 N-1의 비교 횟수를 가져서 O(N)의 시간복잡도 2. 접두어 확인 로직String의 startsWith메서드를 사용해서 복잡성을 완화했다. 그래서 O..

백준/완전탐색 2024.11.07

[백준] 15686 : 치킨 배달 (JAVA)

https://www.acmicpc.net/problem/15686 [풀이과정]선택된 M개의 치킨집으로 치킨 거리를 구해야 하는 거니까 M개를 골랐는데 시간초과가 났다.for문에서 시작 인덱스를 i + 1로 해야 기존 탐색했던 부분을 건너뛰니까 불필요한 탐색시간을 줄일 수 있는데, start+1로 하는 실수를 했다. 변수 때문에 논리오류가 생기면 찾기 힘들어지니까 항상 한 번 더 생각하자.[코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import j..

백준/완전탐색 2024.09.26

[백준] 1062 : 가르침 (JAVA)

https://www.acmicpc.net/problem/1062 [풀이과정]입력된 알파벳들 중 배운 개수만큼 뽑아내서 읽을 수 있는 단어를 찾아야 했는데, 이걸 어떻게 뽑아낼지 고민했다.알파벳을 순서대로 index로 가지는 배열을 사용하면 된다. 아스키 코드를 사용하면 됐는데 이걸 생각 못 해서 많이 헤맸다. [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashMap;import java.util.HashSet;import java.util.Set;import java.util.StringTokenizer;/*anta로 시작하고 tica로 끝나는 남극..

백준/완전탐색 2024.09.20

[백준] 14500 : 테트로미노

14500번: 테트로미노 (acmicpc.net) 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 완전탐색에 대한 개념이 잘 안잡혀있어서 너무 어려웠던 문제이다. 참고한 블로그 - https://hanyeop.tistory.com/416 메모리 : 35972 KB 시간 : 736 ms 코드길이 : 2698 B [내 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.ut..

백준/완전탐색 2023.04.10
반응형