yeahzzz
archive
yeahzzz
전체 방문자
오늘
어제
  • 분류 전체보기 (164)
    • Language (41)
      • Python (12)
      • JAVA (21)
      • C&C++ (8)
    • Algorithms (25)
      • programmers (9)
      • study log (16)
    • Problems & Solutions (14)
    • Major (29)
      • Data Structure & Algorithm (14)
      • Linux(Ubuntu) (9)
      • Security (2)
      • Linear Algebra (4)
    • FE (44)
      • Web(HTML5, CSS, JS) (5)
      • React & TS (26)
      • 코딩일기 (10)
    • BE (1)
      • Node.js (1)
    • Pytorch (8)
    • Server (2)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yeahzzz

archive

Language/JAVA

완전탐색

2021. 10. 3. 19:43

드디어 이해완... 확실히 1208번 풀고 다시 보내까 이해가 수월하다.

이 문제를 접근하기 어려웠던 이유는, "회전","낙차"라는 키워드에서 겁나 쫄았기 때문.

일단 이러한 배열 문제가 나오면 거의 다 완탐이라고 생각하면 된다.

당황하지 말고 행과 열, 둘 중 어떤 것으로 접근하여 코드를 짤 지 결정해야한다.

그림은 복잡해보이지만 , 잘 보면 이 문제에서는 행이 중요하다.

0번째 행에는 블록이 0개, 1번째 행에는 블록이 2개, 2번째 행에는 블록이 3개...

그리고 최종적으로 낙하를 시키면, 낙차는 배열의 총 길이(num) - 각 행의 블록 개수가 된다.

if 문으로 반복 돌리고, 최댓값만 비교해주면 바로 답이 나온다.

이렇게 생각하믄 얼마나 쉽냐고!!! 혼자 더 복잡하게 생각하고 난리였다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package week_FOUR;
import java.util.*;
/*
 * 이해완!!!!
 * 완전 탐색 문제다... 
 * 일단 배열 자체를 회전한다고해서 쫄지마셈... 
 * 행으로 생각할건지 열로 생각할건지부터 정하셈.
 * 그림 보면  
 */
public class Nakha_Final {
    
    public static void GetAnswer(int n, int arr[]) {
        int max = 0;
        
        for (int i = 0; i < n; i++) {
            int Nakcha = n - 1 - i;
            int now = arr[i];
        //상자가 있는 바로 다음 행(가로)부터 탐색 시작
        for (int k = i +1 ; k<n ; k++) {
            if(now < arr[k]) Nakcha--;
        }
        if (max < Nakcha) max = Nakcha;
    }
    System.out.println(max);
}
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int arr[] = new int[num];
        for (int i = 0; i<num; i++) {
            arr[i] = sc.nextInt();
        }
        
        GetAnswer(num, arr);
 
    }
 
}
 
Colored by Color Scripter
cs

 

'Language > JAVA' 카테고리의 다른 글

Interface  (0) 2021.11.04
조회 프로그램  (0) 2021.10.12
객체 배열  (0) 2021.09.28
Constructor & Overloading  (0) 2021.09.28
객체 배열 / 추상화  (0) 2021.08.31
    'Language/JAVA' 카테고리의 다른 글
    • Interface
    • 조회 프로그램
    • 객체 배열
    • Constructor & Overloading
    yeahzzz
    yeahzzz

    티스토리툴바