Zayson
A to Zayson!
Zayson
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (132)
    • Computer Science (20)
      • Network (4)
      • DB (12)
      • OS (4)
    • Algorithm (32)
      • ์™„์ „ํƒ์ƒ‰(Brute-Force) (3)
      • ๊ทธ๋ฆฌ๋””(Greedy) (6)
      • ํˆฌํฌ์ธํ„ฐ(Two-Pointer) (1)
      • ๊ทธ๋ž˜ํ”„(Graph) (5)
      • BFS & DFS (9)
      • ๊ตฌํ˜„, ์‹œ๋ฎฌ๋ ˆ์ด์…˜(Implementation) (5)
      • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP) (3)
    • Backend (51)
      • Spring Boot (19)
      • JPA (16)
      • Kafka (2)
      • Java (13)
      • Kotlin (1)
    • DevOps (1)
      • Jenkins (5)
      • Oracle Cloud Infrastructure (1)
      • Kubernetes & Docker (1)
    • Trouble Shooting (3)
      • JPA (1)
      • Spring Boot (2)
    • ํšŒ๊ณ  (5)
      • ์—”๋นต ํ”„๋กœ์ ํŠธ ํฌ์ŠคํŠธ ๋กœ๋“œ๋งต (1)
      • 2022๋…„ (4)
    • Kafka (7)
      • Kafka (5)
      • Kafka Connect (2)
    • ๊ธฐ์ˆ  ์„œ์  (6)
      • ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„ (3)
      • ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ •๋ณตํ•ด์•ผํ•  ๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ ๋””์ž์ธ ํŒจํ„ด (2)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Backend
  • ๊ตฌํ˜„
  • ์—”๋นตํ”„๋กœ์ ํŠธ
  • Kafka Connect
  • ๋ฐฑ์ค€
  • SpringBoot
  • ๋ผ์ด๋ธŒ์Šคํ„ฐ๋””
  • ๊ทธ๋ฆฌ๋””
  • dfs
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ๋‚˜ ํ˜ผ์ž ์Šคํ”„๋ง๋ถ€ํŠธ!
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค์ „ ์ž…๋ฌธ
  • CS
  • JPA
  • kafka
  • BFS
  • Java
  • Computer science
  • spring boot
  • ์™„์ „ํƒ์ƒ‰

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Zayson

A to Zayson!

[๋ฐฑ์ค€, Java] 16637๋ฒˆ : ๊ด„ํ˜ธ ์ถ”๊ฐ€ํ•˜๊ธฐ
Algorithm/์™„์ „ํƒ์ƒ‰(Brute-Force)

[๋ฐฑ์ค€, Java] 16637๋ฒˆ : ๊ด„ํ˜ธ ์ถ”๊ฐ€ํ•˜๊ธฐ

2022. 4. 19. 22:22

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ

https://www.acmicpc.net/problem/16637

๐Ÿ˜ฎ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋ฌธ์ œ์—์„œ ์ฃผ์˜๊นŠ๊ฒŒ ๋ด์•ผํ•˜๋Š” ์กฐ๊ฑด์ด ๋ช‡๊ฐ€์ง€ ์žˆ๋‹ค.

  1. ๋ชจ๋“  ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹ ๊ณ„์‚ฐ์€ ์™ผ์ชฝ ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  2. ๊ด„ํ˜ธ ์•ˆ์—๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ํ•œ ๊ฐœ๋งŒ ๋“ค์–ด๊ฐ„๋‹ค.

1๋ฒˆ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์žฌ๊ท€ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋งˆ๋‹ค ํ˜„์žฌ๊นŒ์ง€์˜ ๊ฒฐ๊ณผ ๊ฐ’(ouput ํŒŒ๋ผ๋ฏธํ„ฐ)๊ณผ ๊ด„ํ˜ธ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ๊ฐ’ ํ˜น์€ ๋‹ค์Œ ์ฐจ๋ก€์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ๊ณ„์‚ฐ์„ ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋‹ค์Œ ์žฌ๊ท€ ํ˜ธ์ถœ์‹œ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

2๋ฒˆ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ **ํ˜„์žฌ ์ฐจ๋ก€๋กœ ๋ถ€ํ„ฐ ๋‹ค์Œ ์ฐจ๋ก€์™€ ๋‹ค๋‹ค์Œ ์ฐจ๋ก€ (index + 1, index + 2)**์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•ด์ค€๋‹ค. ๊ทธ ํ›„ ํ˜„์žฌ๊นŒ์ง€์˜ ๊ฒฐ๊ณผ ๊ฐ’๊ณผ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ณ„์‚ฐ ํ•˜๋ฉด ๊ด„ํ˜ธ๋ฅผ ๋ฐ˜์˜ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ณ„์‚ฐํ•œ ๊ฒฝ์šฐ index+2 ๊นŒ์ง€์˜ ํ”ผ์—ฐ์‚ฐ์ž๊นŒ์ง€ ๊ณ„์‚ฐ ํ•ด์ฃผ์—ˆ์œผ๋ฏ€๋กœ, ์žฌ๊ท€ ํ˜ธ์ถœ ์‹œ index + 2๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

๊ด„ํ˜ธ๋ฅผ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  ์ผ๋ฐ˜ ๊ณ„์‚ฐ ๋‹จ๊ณ„๋งŒ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ ์ฐจ๋ก€์™€ ๋‹ค์Œ ์ฐจ๋ก€ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐ’์„ ๊ณ„์‚ฐํ•ด ์žฌ๊ท€ ํ˜ธ์ถœ๋กœ ๋„ฃ์–ด์ค€๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด,

  1. ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ num[index + 1], op[index+1], num[index + 2]๊ฐ’์„ ๊ณ„์‚ฐ ํ›„ ํ•ด๋‹น ๊ฐ’์„ output, op[index]๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ์ด ๋•Œ, index + 2 ๊นŒ์ง€ ๊ณ„์‚ฐ ํ–ˆ์œผ๋ฏ€๋กœ index + 2๋ฅผ ๋„ฃ์–ด ์žฌ๊ท€๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  2. ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ output, op[index], num[index+1]๊ฐ’์„ ๊ณ„์‚ฐ ํ›„ index + 1๋ฅผ ๋„ฃ์–ด ์žฌ๊ท€๋ฅผ ํ˜ธ์ถœ ํ•œ๋‹ค.
  3. ์—ฐ์‚ฐ์ž๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ์ตœ๋Œ€๊ฐ’์„ ๋น„๊ตํ•ด ๊ฐฑ์‹ ํ•œ๋‹ค.
  4. ๊ด„ํ˜ธ ์‚ฌ์šฉ ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋ฅผ ์ž˜ ์กฐ์ ˆํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

๐Ÿšฉ Java ์ฝ”๋“œ

package com.algorithm.Baekjoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main_16637_๊ด„ํ˜ธ_์ถ”๊ฐ€ํ•˜๊ธฐ {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int[] num = new int[N / 2 + 1];
        char[] op = new char[N / 2];

        char[] exp = br.readLine().toCharArray();
        for (int index = 0; index < N; index++) {
            if (index % 2 == 0) num[index / 2] = Integer.parseInt(String.valueOf(exp[index]));
            else op[index / 2] = exp[index];
        }

        int rst = getMaxResult(num, op);
        System.out.println(rst);

        br.close();
    }

    private static int getMaxResult(int[] num, char[] op) {
        result = Integer.MIN_VALUE;

        makeExp(num[0], 0, num, op);
        return result;
    }

    private static int result;

    private static void makeExp(int output, int index, int[] num, char[] op) {
        // ์—ฐ์‚ฐ์ž ๋ชจ๋‘ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ
        if (index >= op.length) {
            // ์ตœ๋Œ€๊ฐ’ ๊ฐฑ์‹ 
            result = Math.max(result, output);
            return;
        }

        // ๊ด„ํ˜ธ ๊ณ„์‚ฐ ํ•˜๋Š” ๊ฒฝ์šฐ
        // ์ˆซ์ž ๋ฐฐ์—ด์ด ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก
        if (index + 2 < num.length) {
            // ํ˜„์žฌ ์ˆซ์ž ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋ณด๋‹ค ๋‹ค์Œ ๋‘๊ฐœ์˜ ์ˆซ์ž์˜ ๊ด„ํ˜ธ ๊ณ„์‚ฐ
            int rst = calc(num[index + 1], op[index + 1], num[index + 2]);
            // ํ˜„์žฌ๊นŒ์ง€์˜ ouput ๊ณผ ๋‹ค์Œ ๋‘๊ฐœ ๊ณ„์‚ฐ ๊ฐ’ ๊ณ„์‚ฐ
            makeExp(calc(output, op[index], rst), index + 2, num, op);
        }
        // ๊ด„ํ˜ธ ๊ณ„์‚ฐ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
        // ํ˜„์žฌ๊นŒ์ง€์˜ output๊ณผ ๋‹ค์Œ ์ˆซ์ž ๊ณ„์‚ฐ
        int rst = calc(output, op[index], num[index+1]);
        makeExp(rst, index + 1, num ,op);
    }

    private static int calc(int prev, char operation, int post) {
        if (operation == '+') return prev + post;
        if (operation == '-') return prev - post;
        return prev * post;
    }
}
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm > ์™„์ „ํƒ์ƒ‰(Brute-Force)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€, Java] 9663๋ฒˆ : N-Queen  (0) 2022.05.16
[๋ฐฑ์ค€, Java] 1062๋ฒˆ : ๊ฐ€๋ฅด์นจ  (0) 2022.05.10
    'Algorithm/์™„์ „ํƒ์ƒ‰(Brute-Force)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋ฐฑ์ค€, Java] 9663๋ฒˆ : N-Queen
    • [๋ฐฑ์ค€, Java] 1062๋ฒˆ : ๊ฐ€๋ฅด์นจ
    Zayson
    Zayson
    ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”