본문 바로가기
카테고리 없음

패스트캠퍼스 Java 코딩테스트 강의 3주차

by 챠챠12 2023. 5. 6.

 

사실 배열에 대해서 잘 알고 있다고 생각했는데 문제를 읽고서 간이 문제가 있어서 풀었는데.. 당연히 정답일 줄 알았지만 결국 틀림.

앞서 있었던 문제를 제대로 읽지 않았던 것이 또 문제가 되었다. 휴

다음엔 좀 더 주의해야겠다.

 

해설 강의를 들어보니 거의 근접하게 문제 접근 방식을 생각했으나,

내가 생각한 문제 접근 방식이 자신이 없었는지 아니겠지.. 라는 생각이 젤 컸던게 문제인 것 같다.

그것이 마지막에 행과 열 중에 최댓값을 출력하면 될 것 같다고 생각했는데 최솟값 구하라고 했는데 최댓값을 구한다? 이건 무조건 아니라고 생각을 했던 부분이다.

앞으로 문제 풀 때 자신감을 갖는 게 중요해 보인다. 그러기 위해서는 문제를 많이 풀어보는 경험도 중요해 보인다.

앞으로 남은 문제도 계속해서 도전을 해봐야겠다.

 

03 배열

문제 풀기 :

백준 1236 성지키기 - https://www.acmicpc.net/problem/1236

왼쪽 문제를 풀기 위해서 하나씩 해보는 과정          오른쪽 실습 코드

import java.util.Scanner;

 class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();
        char[][] map = new char[N][M];
        
        // 한줄 압력을 array로 넣기
        for (int i = 0; i < N; i++){
            map[i] = sc.next().toCharArray();
            System.out.println(map[i]);
        }
           
        boolean[] rowExist = new boolean[N];
        boolean[] colExist = new boolean[M];
        for (int i = 0; i < N; i++)
            for (int j = 0; j < M; j++)
                if (map[i][j] == 'X') {
                    // 경비가 있으면 true
                    rowExist[i] = true;
                    colExist[j] = true;
                }

        int rowNeedCount = N;
        int colNeedCount = M;
        // 경비가 있는 행과 열은 빼기
        for (int i = 0; i < N; i++)
            if (rowExist[i]) rowNeedCount--;
        for (int i = 0; i < M; i++)
            if (colExist[i]) colNeedCount--;
        
        // 행과 열 중에 최대값 출력.
        System.out.println(Math.max(rowNeedCount, colNeedCount));
    }
    
}

 

- 입출력 시간 비교

강의 내용 중 " 내 시간 복잡도에는 문제가 없는데 시간초과가 난다면 아래와 같은 비교를 통해서 알 수 있었다."

" Scanner 와 System.out.print 계열 함수는 상대적으로 느리다.

- 근데 나는 입력은 차이가 났지만, 출력에는 차이가 없어서 검색을 해봤다.

[참고하면 좋을 사이트]

1. Java로 PS를 할 때, Scanner와 System.out.println을 쓰면 안 되는 이유

https://steady-coding.tistory.com/183 

2. bufferedwriter와 println 동작 차이

https://www.acmicpc.net/board/view/71804

 

- 문제 풀기 :

백준 A+B- https://www.acmicpc.net/problem/1000

 

 

 "본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다."

수강중인 강의 상세페이지 링크

https://fastcampus.co.kr/dev_online_codingtest

LIST

댓글