BOJ 14501번 퇴사

|
package BOJ.BruteForce;

import java.util.Scanner;

/**
 * 풀이참고
 * https://mygumi.tistory.com/151
 */
public class BOJ_14501 {

    static int[] t;
    static int[] p;
    static int[] dp;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        t = new int[n + 1];
        p = new int[n + 1];
        dp = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            t[i] = sc.nextInt();
            p[i] = sc.nextInt();
            dp[i] = p[i];
        }

        for (int i = 2; i <= n; i++) {
            for (int j = 1; j < i; j++) {
                if (i - j >= t[j])
                    dp[i] = Math.max(p[i] + dp[j], dp[i]);
            }
        }

        int max = 0;

        for (int i = 1; i <= n; i++) {
            if (i + t[i] <= n + 1) {
                if (max < dp[i]) {
                    max = dp[i];
                }
            }
        }
        System.out.println(max);
    }
}

BOJ 14500번 테트로미노

|
package BOJ.BruteForce;

import java.util.Scanner;

public class BOJ_14500 {

    static int[][] square;

    public static void main(String[] args) {
        java.util.Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int m = sc.nextInt();
        square = new int[n + 1][m + 1];
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                square[i][j] = sc.nextInt();
            }
        }

        solve(n, m);

    }

    private static void solve(int n, int m) {
        int answer = 0;
        int temp = 0;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {

                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i][j] + square[i + 1][j] + square[i + 2][j] + square[i + 2][j + 1];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i + 2][j] + square[i][j + 1] + square[i + 1][j + 1] + square[i + 2][j + 1];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i][j] + square[i][j + 1] + square[i + 1][j + 1] + square[i + 2][j + 1];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i][j] + square[i + 1][j] + square[i + 2][j] + square[i][j + 1];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i][j] + square[i][j + 1] + square[i][j + 2] + square[i + 1][j + 2];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i][j + 2] + square[i + 1][j] + square[i + 1][j + 1] + square[i + 1][j + 2];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i][j] + square[i + 1][j] + square[i + 1][j + 1] + square[i + 1][j + 2];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i][j] + square[i + 1][j] + square[i][j + 1] + square[i][j + 2];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i][j] + square[i][j + 1] + square[i + 1][j + 1] + square[i + 1][j + 2];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i + 1][j] + square[i + 1][j + 1] + square[i][j + 1] + square[i][j + 2];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i][j] + square[i + 1][j] + square[i + 1][j + 1] + square[i + 2][j + 1];
                    if (answer < temp)
                        answer = temp;
                }
                
                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i][j + 1] + square[i + 1][j] + square[i + 1][j + 1] + square[i + 2][j];
                    if (answer < temp)
                        answer = temp;
                }


                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i][j] + square[i + 1][j] + square[i + 1][j + 1] + square[i + 2][j];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 2 <= n && j + 1 <= m) {
                    temp = square[i + 1][j] + square[i][j + 1] + square[i + 1][j + 1] + square[i + 2][j + 1];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i][j + 1] + square[i + 1][j] + square[i + 1][j + 1] + square[i + 1][j + 2];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 2 <= m) {
                    temp = square[i][j] + square[i][j + 1] + square[i][j + 2] + square[i + 1][j + 1];
                    if (answer < temp)
                        answer = temp;
                }

                if (j + 3 <= m) {
                    temp = square[i][j] + square[i][j + 1] + square[i][j + 2] + square[i][j + 3];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 3 <= n) {
                    temp = square[i][j] + square[i + 1][j] + square[i + 2][j] + square[i + 3][j];
                    if (answer < temp)
                        answer = temp;
                }

                if (i + 1 <= n && j + 1 <= m) {
                    temp = square[i][j] + square[i][j + 1] + square[i + 1][j] + square[i + 1][j + 1];
                    if (answer < temp)
                        answer = temp;
                }
            }
        }
        System.out.println(answer);
    }
}

BOJ 1107번 리모컨

|
package BOJ.BruteForce;

import java.util.*;

public class BOJ_1107 {
    
    static boolean[] broken = new boolean[10];

    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        for (int i = 0; i < m; i++) {
            int x = sc.nextInt();
            broken[x] = true;
        }
        int ans = n - 100;
        if (ans < 0) {
            ans = -ans;
        }
        for (int i = 0; i <= 1000000; i++) {
            int c = i;
            int len = possible(c); // 한 번에 갈 수 있으면 횟수 리턴. 못 가면 0을 리턴
            if (len > 0) {
                int press = c - n; // 한 번에 갈 수 있는 수 - n = 버튼을 눌러야하는 횟수
                if (press < 0) {
                    press = -press;
                }
                if (ans > len + press) { // 버튼을 눌러야 하는 횟수 + 한 번에 갈 수 있는 수
                    ans = len + press;
                }
            }
        }
        System.out.println(ans);
    }

    private static int possible(int c) {
        if (c == 0) {
            if (broken[0]) {
                return 0;
            } else {
                return 1;
            }
        }
        int len = 0;
        while (c > 0) {
            if (broken[c % 10]) { // 고장난 버튼 있는지 확인
                return 0;
            }
            len += 1;
            c /= 10; // 자리별로 확인
        }
        return len;
    }
}

BOJ 1476번 날짜계산

|
package BOJ.BruteForce;

import java.util.Scanner;

public class BOJ_1476 {

    public static void main(String[] args) {
        java.util.Scanner sc = new Scanner(System.in);
        int[] dsm = new int[3];
        for (int i = 0; i < 3; i++) {
            dsm[i] = sc.nextInt();
        }
        int count = 0;
        int d = 0;
        int s = 0;
        int m = 0;
        while (true) {

            if (d == dsm[0] && s == dsm[1] && m == dsm[2])
                break;

            d++;
            if (d % (15 + 1) == 0)
                d = 1;

            s++;
            if (s % (28 + 1) == 0)
                s = 1;

            m++;
            if (m % (19 + 1) == 0)
                m = 1;

            count++;
        }
        System.out.println(count);
    }
}

git 명령어

|

git 명령어

가장 최근 커밋 되돌리기 (원격저장소까지)

  • git reset –soft HEAD^
    • 로컬저장소 최신 커밋 되돌리고 staging 상태로 유지한다
    • –soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
    • –mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
    • –hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소
  • git push -f origin [branch_Name]
    • 원격저장소에 푸시한다 -> 최신 커밋 삭제됨


브랜치 생성하며 바꾸기

  • git checkout -b [branch_Name]


origin

  • 원격저장소 URL 축약어로 원격저장소 푸시할때 사용한다
    • ex) git push origin [branch_Name]


add 취소하기 (Staged -> Unstaged)

  • git reset HEAD [file_Name]
  • Staged 파일 모두 취소하고 싶다면
    • git reset HEAD .


작업하던 내용 임시저장 하고 checkout

  • git stash / git stash save “description”


ref. 블로그