๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[Softeer] GBC - Java

category Algorithm/Softeer 2023. 4. 29. 00:34

https://softeer.ai/practice/info.do?idx=1&eid=584&sw_prbl_sbms_sn=178750 

 

Softeer

์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ

softeer.ai


1. ๋ฌธ์ œ

๊ตฌ๊ฐ„ ๊ธธ์ด, ๊ตฌ๊ฐ„๋ณ„ ์ œํ•œ ์†๋„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์ž„์˜์˜ ๊ตฌ๊ฐ„ ๊ธธ์ด, ๊ตฌ๊ฐ„๋ณ„ ์ œํ•œ ์†๋„๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ

์ œํ•œ ์†๋„๊ฐ€ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋ฒ—์–ด๋‚œ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋ฌด์Šจ ๋œป์ด๋ƒ๋ฉด 50m๊ธธ์ด์˜ ๊ตฌ๊ฐ„์—์„œ 50m/s์˜ ์ œํ•œ ์†๋„๋ฅผ ๊ฐ€์ ธ์•ผ ํ•˜๋Š”๋ฐ

์ž„์˜์˜ ๊ตฌ๊ฐ„ 60m๊ธธ์ด์˜ ๊ตฌ๊ฐ„์—์„œ 76m/s์˜ ์ œํ•œ ์†๋„๋ฅผ ๊ฐ€์ง„๋‹ค๋ฉด

์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ๊ตฌ๊ฐ„์€ (0~50m), (51~60m) ๋‘ ๊ตฌ๊ฐ„์ด ์ƒ๊ธธ ๊ฒƒ์ด๊ณ 

์ œํ•œ ์†๋„์˜ ์ฐจ์ด๋Š” (76-50=26 m/s), (76-40=36 m/s) ๋กœ ์ฐจ์ด๊ฐ€ ๋” ํฐ 36์ด ๋‹ต์ด ๋  ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๊ตฌํ•œ ์ฐจ์ด ์ค‘ ๊ฐ€์žฅ ํฐ ์ฐจ์ด๊ฐ€ ๋‹ต์ด ๋œ๋‹ค.

 

2. ํ’€์ด

๊ตฌํ˜„ ๋ฌธ์ œ๋‹ค. ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ๊ตฌ๊ฐ„์˜ ์‹œ์ž‘์ , ๋์ ์„ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋กœ ๊ฐ€์ง€๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ํด๋ž˜์Šค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, 

์ด๋ ‡๊ฒŒ ํ‘ธ๋‹ˆ๊นŒ ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์™”๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฉ๋ฒ•์„ ๋ฐ”๊ฟจ๋‹ค. 1์‹œ๊ฐ„ 32๋ถ„ ๊ฑธ๋ ธ๋‹ค.

 

๊ตฌ๊ฐ„์˜ ์ด ๊ธธ์ด๋Š” 100m๋กœ, 0~100๊นŒ์ง€๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ฐ€์ง€๋Š” arr[101]์„ ๋งŒ๋“ค๊ณ 

๊ฐ ์ธ๋ฑ์Šค๋งˆ๋‹ค ์ฐจ์ด๋ฅผ ๋„ฃ์–ด์คฌ๋‹ค.

์ฒ˜์Œ์— for๋ฌธ์œผ๋กœ ์ •ํ•ด์ง„ ์ œํ•œ ์†๋„๋ฅผ ๋จผ์ € ๋„ฃ์–ด์ฃผ๊ณ 

๊ทธ๋‹ค์Œ์— ๋˜ for๋ฌธ์œผ๋กœ ์ž„์˜์˜ ์ œํ•œ์†๋„์™€ ๊ธฐ์กด์˜ ๋ฐฐ์—ด๊ฐ’(์ •ํ•ด์ง„ ์ œํ•œ ์†๋„)๊ณผ์˜ ์ฐจ์ด๋กœ ๊ฐ’์„ ๊ฐฑ์‹ ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ, for๋ฌธ ์•ˆ์— max๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š” Math.max(ans, arr[idx]); ๋ฅผ ๋‘์–ด ๊ณ„์†ํ•ด์„œ ์ฐจ์ด์˜ ์ตœ๋Œ€๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ฃผ์—ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ’€์—ˆ๋”๋‹ˆ ํ†ต๊ณผํ–ˆ๋‹ค.

 

์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ arr[0]์ด๋‹ค. ์ธ๋ฑ์Šค๊ฐ€ 0์ผ ๋•Œ ์ œํ•œ ์†๋„๋ฅผ ๋„ฃ๊ณ  ์‹œ์ž‘ํ•˜์—ฌ

1~50

1~40

1~10 ์ด๋Ÿฐ์‹์œผ๋กœ 1๋ถ€ํ„ฐ ๊ตฌ๊ฐ„๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์•ผ 100๊นŒ์ง€ ๊ฐ’์ด ์ฑ„์›Œ์ง„๋‹ค.

 

3. ์ฝ”๋“œ

import java.util.*;
import java.io.*;


public class Main
{
    static int N, M, ans=0;
    static int[] arr = new int[101];

    public static void main(String args[]) throws Exception
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());

        int idx = 0;
        for (int i=0; i<N; i++) {
            st = new StringTokenizer(br.readLine());
            int len = Integer.parseInt(st.nextToken());
            int speed = Integer.parseInt(st.nextToken());
            if (i==0) {
                arr[idx] = speed;
                idx++;
            }
            for (int j=1; j<=len; j++) {
                arr[idx] = speed;
                idx++;
            }
        }
        idx = 0;
        for (int i=0; i<M; i++) {
            st = new StringTokenizer(br.readLine());
            int len = Integer.parseInt(st.nextToken());
            int speed = Integer.parseInt(st.nextToken());
            if (i==0) {
                arr[idx] = speed - arr[idx];
                ans = Math.max(ans, arr[idx]);
                idx++;
            }
            for (int j=1; j<=len; j++) {
                arr[idx] = speed - arr[idx];
                ans = Math.max(ans, arr[idx]);
                idx++;
            }
        }
        
        System.out.println(ans);
    }
}

 

4. ์‚ฌ๋‹ด

๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋‚˜๋ฆ„ ํ’€๊ธฐ ํŽธํ•œ ๋ฌธ์ œ๋“ค์ด ์žˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ๋ณต์žกํ•˜๋ฉด ์ดˆ์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž..