๊ธฐ๋ก๋ฐฉ

BOJ_2018 : ์ˆ˜๋“ค์˜ ํ•ฉ 5 ๋ณธ๋ฌธ

CodingTest/Java

BOJ_2018 : ์ˆ˜๋“ค์˜ ํ•ฉ 5

Soom_1n 2022. 9. 24. 14:24

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

2018๋ฒˆ: ์ˆ˜๋“ค์˜ ํ•ฉ 5

์–ด๋– ํ•œ ์ž์—ฐ์ˆ˜ N์€, ๋ช‡ ๊ฐœ์˜ ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋‹น์‹ ์€ ์–ด๋–ค ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 10,000,000)์— ๋Œ€ํ•ด์„œ, ์ด N์„ ๋ช‡ ๊ฐœ์˜ ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€์ง€์ˆ˜๋ฅผ ์•Œ๊ณ  ์‹ถ์–ดํ•œ

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • 1๋ถ€ํ„ฐ N์ดํ•˜์˜ ์ˆ˜๋“ค์˜ ํ•ฉ์ด N์ด ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int answer = 1;
        int start = 1;
        int end = 1;
        long sum = 1;

        while (end < n){
            if (sum == n){
                answer++;
                sum += ++end;
            } else if (sum > n) {
                sum -= start++;
            } else if (sum < n) {
                sum += ++end;
            }
        }
        System.out.println(answer);
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • 1๋ถ€ํ„ฐ N-1๊นŒ์ง€ ๋‚˜์—ดํ–ˆ์„๋•Œ, ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด ํ•ฉ์ด N์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์„ผ๋‹ค.
    • ๋ฒ”์œ„์˜ ์™ผ์ชฝ ์ธ๋ฑ์Šค๋Š” start, ์˜ค๋ฅธ์ชฝ ์ธ๋ฑ์Šค๋Š” end, ํ•ฉ์€ sum์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
    • 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ sum์˜ ์ดˆ๊ธฐ๊ฐ’์€ 1์ด๋‹ค.
    • N์€ ๋ฌด์กฐ๊ฑด ํ•œ ๊ฐœ๋กœ ์„ธ์ง€๋ฏ€๋กœ answer์˜ ์ดˆ๊ธฐ๊ฐ’์€ 1์ด๋‹ค.
  • ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉฐ end๊ฐ€ N์ด ๋  ๋•Œ ๊นŒ์ง€ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ํ•ฉ sum๊ณผ N์ด ๊ฐ™๋‹ค๋ฉด ๊ฒฐ๊ณผ answer๋ฅผ +1 ํ•œ๋‹ค.
    • ํ•ฉ์ด ๋” ํฌ๋‹ค๋ฉด, start๋ฅผ sum์—์„œ ๋นผ๊ณ  start๋ฅผ +1 ํ•œ๋‹ค.
    • N์ด ๋” ํฌ๋‹ค๋ฉด, end๋ฅผ +1ํ•˜๊ณ  sum์— ๋”ํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ํˆฌ ํฌ์ธํ„ฐ ๋ฌธ์ œ๋Š” ์ธ์‹ํ•˜๊ณ  ํ’€์–ด๋ณธ ์  ์—†์ง€๋งŒ ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์› ๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_1253 : ์ข‹๋‹ค  (0) 2022.09.24
BOJ_1940 : ์ฃผ๋ชฝ  (0) 2022.09.24
BOJ_10986 : ๋‚˜๋จธ์ง€ ํ•ฉ  (0) 2022.09.23
BOJ_1384 : ๋ฉ”์‹œ์ง€  (0) 2022.09.23
BOJ_11669 : ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 5  (0) 2022.09.22