๐ŸŽฏ Coding Test

๋ฐฑ์ค€ 19941๋ฒˆ : ํ–„๋ฒ„๊ฑฐ ๋ถ„๋ฐฐ

์—ฐ_์šฐ๋ฆฌ 2021. 10. 21. 22:10
๋ฐ˜์‘ํ˜•


์ผ๋‹จ P๋ฅผ ๋จผ์ € ์ฐพ๊ณ 

P์˜ -K ~ +K ์ค‘์— H๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

 

* ๋งŒ์•ฝ P๊ฐ€ ๋งจ ์•ž์ด๋‚˜ ๋งจ ๋’ค์— ์œ„์น˜ํ•ด์žˆ๋‹ค๋ฉด

-K ~ +K ๊ทธ๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์—†๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์กฐํšŒ๋œ๋‹ค

 

๋”ฐ๋ผ์„œ start์™€ end๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์„œ

p์˜ ์ธ๋ฑ์Šค -K ํ–ˆ์„ ๋•Œ 0 ์ดํ•˜์ด๋ฉด start๋Š” ๋ฌด์กฐ๊ฑด 0์œผ๋กœ ๊ณ ์ •,

P์˜ ์ธ๋ฑ์Šค +K ํ–ˆ์„ ๋•Œ N ์ด์ƒ์ด๋ฉด end๋Š” ๋ฌด์กฐ๊ฑด N-1๋กœ ๊ณ ์ •ํ•œ ๋‹ค์Œ

 

start์™€ end ์‚ฌ์ด์—์„œ H๋ฅผ ์ฐพ๋Š”๋‹ค!

๋˜, ์ด๋ฏธ ๋จน์€ ํ–„๋ฒ„๊ฑฐ๋Š” ์นด์šดํŠธํ•˜์ง€ ์•Š์œผ๋‹ˆ ์•„์˜ˆ ๊ธ€์ž๋ฅผ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค

 

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Scanner;

class Hamburger {
    int N=0;
    int K=0;
    char[] arr;
    int result=0;

    void scan_input(String inputed){
        InputStream in = new ByteArrayInputStream(inputed.getBytes());
        System.setIn(in);
    }

    void scan(){
        Scanner scan = new Scanner(System.in);
        N = scan.nextInt();
        K = scan.nextInt();
        arr = new char[N];
        arr = scan.next().toCharArray();
        scan.close();
    }

    void process(){
        //P ์ขŒ์šฐ๋กœ K๋งŒํผ H๊ฐ€ ์žˆ์œผ๋ฉด ๋จน์„ ์ˆ˜ ์žˆ์Œ
        //์ด๋ฏธ ๋จน์€ ํ–„๋ฒ„๊ฑฐ๋Š” ์นด์šดํŠธ ์•ˆํ•จ => ๋จน์€ ํ–„๋ฒ„๊ฑฐ๋Š” ๊ธ€์ž๋ณ€๊ฒฝ
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == 'P'){
                //P ์—์„œ -K~+Kํ–ˆ์„ ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ start, end์ง€์  ์„ค์ •
                int start = i-K;
                int end = i+K;
                if (start <= 0) {
                    start = 0;
                }
                if (end >= N){
                    end = N-1;
                }
                //System.out.println("i="+i+", start="+start+", end="+end);

                //P์˜ -K~+K๊นŒ์ง€ ์‚ดํŽด๋ณด๊ธฐ
                for (int j = start; j <= end; j++) {
                    if(arr[j] == 'H'){
                        result++;
                        arr[j] = '_';
                        break;
                    }
                }
                //System.out.print(arr);
                //System.out.println("  "+result);
            }
        }
        System.out.println(result);
    }
}

public class Main {
    public static void main(String[] args) {
        Hamburger ham = new Hamburger();
        ham.scan();
        ham.process();
    }
}
    @Test
    void test1() {
        Hamburger ham = new Hamburger();
        ham.scan_input(
                "20 1\n" +
                "HHPHPPHHPPHPPPHPHPHP"
        );
        ham.scan();
        ham.process();
    }

    @Test
    void test2() {
        Hamburger ham = new Hamburger();
        ham.scan_input(
                "20 2\n" +
                        "HHHHHPPPPPHPHPHPHHHP"
        );
        ham.scan();
        ham.process();
    }

 

#๋ฐฑ์ค€ #๋ฐฑ์ค€๋ฌธ์ œํ’€์ด #์ฝ”๋”ฉํ…Œ์ŠคํŠธ #๋ฐฑ์ค€19941๋ฒˆ

๋ฐ˜์‘ํ˜•
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ํŠธ์œ„ํ„ฐ ๊ณต์œ ํ•˜๊ธฐ
  • ๊ตฌ๊ธ€ ํ”Œ๋Ÿฌ์Šค ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ