[프로그래머/Java] 기지국 설치 (Lv. 3)
·
Algorithm/java
문제풀이 나는 최대한 시간이 짧게 구현하고 싶어서 전체 아파트의 개수만큼 반복하는 것이 아니라, 이미 설치된 기지국의 위치를 기준으로 필요한 부분만 집중해서 기지국을 설치하도록 구현했다.첫번째 입출력 예로 예를 들어보면서 설명을 하겠다.  아파트 개수: n = 11이미 설치된 기지국 위치: stations = [4, 11]기지국의 전파 도달 범위: w = 1 1. 현재 4번째, 7번째 아파트에 기지국이 설치가 되어있다.   2. 각 기지국이 전파를 양쪽으로 w=1 칸 씩 전달할 수 있으므로 아래와 같이 3,5,10번째 아파트에는 기지국이 설치되지 않아도 된다.  3. 이제 나머지 아파트들 중 어느 아파트에 기지국을 설치해야하는지가 문제인데여기서 포인트는 한 기지국을 기준으로 왼쪽 아파트들만 확인하는 것이..
[백준/Java, Kotlin] 1484번 다이어트
·
Algorithm/java, kotlin
문제풀이(Java만 풀이)문제의 핵심은 합차 공식을 이용하는 것이다. 문제에서 주어진 G킬로그램은 성원이의 현재 몸무게의 제곱에서 성원이가 기억하고 있던 몸무게의 제곱을 뺀 것이다.를 식으로 나타내면 위의 합차 공식과 동일하다. 그래서 (현재 몸무게 + 기억 몸무게) (현재 몸무게 - 기억 몸무게) = G가 된다면 현재 몸무게로 하다. BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(bf.readLine());int G = Integer.parseInt(st.nextToken());ArrayList al = new ArrayList();1. 문제에서 ..
[백준/Java, Kotlin] 2096번 내려가기
·
Algorithm/java, kotlin
문제 풀이(Java만 풀이)이 문제는 dp로 풀어야한다.처음에는 bfs로 풀었는데 메모리 초과가 떴다. bfs로 푼 코드는 아래 코드 부분에 남겨두겠어용. BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(bf.readLine());int N = Integer.parseInt(st.nextToken());int[][] arr = new int[N][3];int[][] minArr = new int[N][3];int[][] maxArr = new int[N][3];int max = Integer.MIN_VALUE;int min = Integer.MAX_V..
[백준/Java, Kotlin] 18114번 블랙 프라이데이
·
Algorithm/java, kotlin
문제 풀이 (Java만 설명) 총 4가지의 방법으로 풀이했다. 다른 부분은 거의 비슷하고 3개의 물건을 고르는 부분만 다르다.시간이 오래 걸린 풀이 방법부터 간단하게 설명해보겠다. 1. 반복문BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(bf.readLine());int N = Integer.parseInt(st.nextToken());int C = Integer.parseInt(st.nextToken());int[] things = new int[N];Boolean isFriday = false;st = new StringTokenizer(bf.r..
나연쓰
'Algorithm' 카테고리의 글 목록