BOJ 5

[백준 2448] 별 찍기 - 11

2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static int n; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readL..

[Solved]/BOJ 2023.05.13

[백준 1074] Z

1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 배열 한 변의 길이는 2^N 한 변이 2^(N-1)인 사각형 4개로 나누어 왼쪽 위 - 오른쪽 위 - 왼쪽 아래 - 오른쪽 아래 순서 한 변의 길이가 2가 되었을 때 static int number 를 대입하면 됨 이후 board[r][c]의 값을 출력하면 된다 -> 메모리 초과 발생 board 전체를 recursion() 해서 그런 것으로 생각된다 r, c의 위치를 계속 추척해, 해당하는 영역만 recursion 할 필요가 있다 -> number++이..

[Solved]/BOJ 2023.05.12

[백준 10816] 숫자 카드 2

https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 1. 갖고있는 카드의 개수 N 을 입력받는다. 2. N개 만큼 숫자를 입력받는다. 3. 정수 M을 입력받는다. 4. 숫자 M개를 입력받는다. N 개의 배열을 돌면서 내부적으로 M 번의 탐색을 하는 것은 O(N^2)라는 엄청난 시간복잡도가 나오기에 HashMap 를 사용하여 쉽게 풀 수 있다. import java.io.BufferedReader; import ja..

[Solved]/BOJ 2023.04.30

[백준 1464] 뒤집기 3

https://www.acmicpc.net/problem/1464 1464번: 뒤집기 3 세준이는 어떤 문자열 S를 뒤집으려고 한다. 문자열을 뒤집는 방법은 문자열의 길이를 N이라고 하자. i만큼을 뒤집는다는 소리는 그 문자열의 처음부터 정확하게 i개의 문자를 역순으로 뒤집는 www.acmicpc.net 문자열을 입력받고 앞부터 .reverse() 가 가능하다. Brute Force 방식도 있지만 Greedy 방식 활용이 더 낫다. 1. 문자열 input 을 입력받고 앞부터 천천히 뒤집는다. 2. 뒤집을 때마다 check 메서드를 실행해 새로 생성한 문자열을 기존 제일 사전순 앞이던 문자열 answer 와 비교한다. 3. 비교해서 더 앞에 있으면 answer 를 업데이트하고, 더 뒤에 있으면 파기한다. ..

[Solved]/BOJ 2023.04.26

[백준 5430] AC

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 골드 치고는 너무 쉬운 문제가 아닌가 싶었는데, 다음 문장이 눈에 들어왔다. [전체 테스트 케이스에 주어지는 p의 길이의 합과 n의 합은 70만을 넘지 않는다.] 정답률이 굉장히 낮다고 생각했는데, 분명 시간초과가 뜬 것이 분명했다. 알파벳 R과 D에 해당하는 연산을 수행해주는 것 이상으로 더 생각을 해 봐야 했다. - R을 할 때마다 뒤집는 것 -> 시간초과의 원인들 중 하나 - 따라서 R이 들어왔을 경우 뒤집는 대신 boolean 값 isRevers..

[Solved]/BOJ 2023.04.26