ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 17389 ๋ณด๋„ˆ์Šค ์ ์ˆ˜ with Python
    PS 2023. 4. 14. 11:47
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 17389 ๋ณด๋„ˆ์Šค ์ ์ˆ˜

    ๐Ÿ’ก ์กฐ๊ฑด

    1. OXํ‘œ์— N๊ฐœ์˜ ๋ฌธ์ œ๋“ค์ด ์žˆ์„ ๋•Œ, 1๋ฒˆ ๋ฌธ์ œ, 2๋ฒˆ ๋ฌธ์ œ, ..., N๋ฒˆ ๋ฌธ์ œ ์ˆœ์œผ๋กœ ์ฑ„์ ๋œ๋‹ค.
      ๋ฌธ์ œ๋Š” ๋’ค๋กœ ๊ฐˆ์ˆ˜๋ก ์–ด๋ ค์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์—, i ๋ฒˆ ๋ฌธ์ œ์˜ ๊ธฐ๋ณธ ์ ์ˆ˜๋Š” i ์ ์ด๋‹ค.

    2. ๋ฌธ์ œ๋ฅผ ๋งžํžˆ๋ฉด ๊ทธ ๋ฌธ์ œ์˜ ๊ธฐ๋ณธ ์ ์ˆ˜(์ฆ‰ i ๋ฒˆ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ i ์ )๋ฅผ ํš๋“ํ•˜๋ฉฐ, ํ‹€๋ฆฌ๋ฉด ์–ป์ง€ ๋ชปํ•œ๋‹ค.
      ๊ธฐ๋ณธ ์ ์ˆ˜์™€ ๋ณ„๊ฐœ๋กœ, '๋ณด๋„ˆ์Šค ์ ์ˆ˜'๋ผ๋Š” ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค. ์ด๋Š” ์ฒ˜์Œ์—๋Š” 0์ ์ด๋‹ค.

    3. ๋ฌธ์ œ๋ฅผ ๋งžํžˆ๋ฉด ๊ทธ ๋•Œ์˜ '๋ณด๋„ˆ์Šค ์ ์ˆ˜'๋ฅผ ํš๋“ํ•˜๊ณ , '๋ณด๋„ˆ์Šค ์ ์ˆ˜'์˜ ๊ฐ’์ด 1์  ์ฆ๊ฐ€ํ•œ๋‹ค.
      ๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฌ๋ฉด '๋ณด๋„ˆ์Šค ์ ์ˆ˜'๋ฅผ ์–ป์ง€ ๋ชปํ•˜๊ณ , '๋ณด๋„ˆ์Šค ์ ์ˆ˜'์˜ ๊ฐ’์ด 0์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค.

    4. ์ฒซ ๋ฒˆ์งธ ์ค„์— OXํ‘œ์˜ ๊ธธ์ด์ธ ์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 10,000)

    5. ๋‘ ๋ฒˆ์งธ ์ค„์— OXํ‘œ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
      S๋Š” O(์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž O, ASCII ์ฝ”๋“œ 79)์™€ X(์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž X, ASCII ์ฝ”๋“œ 88)๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” N์ด๋‹ค.

    6. ๋ฌธ์ž์—ด S์˜ i ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ O์ด๋ฉด ํ•ด๋‹น ์ฐธ๊ฐ€์ž๊ฐ€ i ๋ฒˆ์งธ ๋ฌธ์ œ๋ฅผ ๋งžํ˜”์Œ์„ ์˜๋ฏธํ•˜๊ณ , X์ด๋ฉด ํ‹€๋ ธ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

    7. ๊ตฌํ˜„ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ 1

    8
    XOOOXOOX

    ์‹คํ–‰๊ฒฐ๊ณผ 1

    26

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ์ž˜ ์‚ดํŽด๋ณธ ๋’ค, ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž.
      ๋ฌธ์ œ๋ฅผ ๋งžํžˆ๋ฉด ๊ทธ ๋ฌธ์ œ์˜ ๊ธฐ๋ณธ ์ ์ˆ˜(์ฆ‰ i ๋ฒˆ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ i ์ )๋ฅผ ํš๋“ํ•˜๋ฉฐ, ํ‹€๋ฆฌ๋ฉด ์–ป์ง€ ๋ชปํ•œ๋‹ค.
      ๊ธฐ๋ณธ ์ ์ˆ˜์™€ ๋ณ„๊ฐœ๋กœ, '๋ณด๋„ˆ์Šค ์ ์ˆ˜'๋ผ๋Š” ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค. ์ด๋Š” ์ฒ˜์Œ์—๋Š” 0์ ์ด๋‹ค.

      ๋ฌธ์ œ๋ฅผ ๋งžํžˆ๋ฉด ๊ทธ ๋•Œ์˜ '๋ณด๋„ˆ์Šค ์ ์ˆ˜'๋ฅผ ํš๋“ํ•˜๊ณ , '๋ณด๋„ˆ์Šค ์ ์ˆ˜'์˜ ๊ฐ’์ด 1์  ์ฆ๊ฐ€ํ•œ๋‹ค.
      ๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฌ๋ฉด '๋ณด๋„ˆ์Šค ์ ์ˆ˜'๋ฅผ ์–ป์ง€ ๋ชปํ•˜๊ณ , '๋ณด๋„ˆ์Šค ์ ์ˆ˜'์˜ ๊ฐ’์ด 0์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค.

    2. ์˜ˆ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ณด๋ฉฐ ๊ตฌํ˜„์„ ํ•˜๋ฉด ๋œ๋‹ค.

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    n = int(stdin.readline())
    s = stdin.readline().rstrip()
    ans = 0
    cnt, flag = 0, 0
    
    for i in range(len(s)):
        if s[i] == 'X':
            cnt = 0
        else:
            if flag:
                cnt += 1
                ans += (i + 1) + cnt
                continue
    
            ans += (i + 1) + cnt
            cnt += 1
    print(ans)
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.