[8958] OXํ€ด์ฆˆ

์ด์ˆœ๊ฐ„ยท2025๋…„ 3์›” 16์ผ

BAEKJOON

๋ชฉ๋ก ๋ณด๊ธฐ
22/81

๐Ÿ“Œ ๋ฐฑ์ค€ 8958๋ฒˆ - OXํ€ด์ฆˆ

๐Ÿ“‚ ๋ฌธ์ œ ์œ ํ˜•

๊ตฌํ˜„, ๋ฌธ์ž์—ด


๐Ÿ“Ž ๊ด€๋ จ ๋งํฌ

8958๋ฒˆ - OXํ€ด์ฆˆ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ


๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช…

"OOXXOXXOOO"์™€ ๊ฐ™์€ OXํ€ด์ฆˆ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค.

  • O: ๋ฌธ์ œ๋ฅผ ๋งž์€ ๊ฒƒ โ†’ ์—ฐ์†๋œ O์˜ ๊ฐœ์ˆ˜๋งŒํผ ์ ์ˆ˜ ๋ถ€์—ฌ
  • X: ๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฐ ๊ฒƒ โ†’ 0์ 

์—ฐ์†๋œ O์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๊ฐ€์‚ฐ์ ์ด ๋ถ™๋Š”๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด "OOXXOXXOOO"๋Š” 1+2+0+0+1+0+0+1+2+3 = 10์ ์ด๋‹ค.

OXํ€ด์ฆˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ผ.

โœ… ์˜ˆ์ œ

  • OOXXOXXOOO โ†’ 10์ 
  • OOOOOOOOOO โ†’ 55์  (1+2+3+...+10)
  • OXOXOXOXOXOXOX โ†’ 7์ 

์ž…๋ ฅ

  • ์ฒซ์งธ ์ค„: ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T
  • ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ: OX ๋ฌธ์ž์—ด T๊ฐœ
  • ๋ฌธ์ž์—ด์€ O์™€ X๋กœ๋งŒ ์ด๋ฃจ์–ด์ง
  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 80 ์ดํ•˜

์ถœ๋ ฅ

  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ์ด ์ ์ˆ˜๋ฅผ ์ถœ๋ ฅ

๐Ÿงช ์‹œํ—˜ํ•˜๋Š” ๊ฐœ๋…

โœ… ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ O์™€ X๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ์กฐ๊ฑด๋ฌธ
โœ… ์—ฐ์†๋œ O๋ฅผ ๋ˆ„์ ํ•˜์—ฌ ์ ์ˆ˜ ๊ณ„์‚ฐํ•˜๊ธฐ
โœ… ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ
โœ… ์ดˆ๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋ฅผ ๋ฌธ์ œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์Šต๊ด€


๐ŸŽฏ ๋ฌธ์ œ ํ•ด๊ฒฐ ํ›„ ์–ป์–ด๊ฐˆ ์ 

๐Ÿ’ก ์—ฐ์†๋œ ์กฐ๊ฑด ๋งŒ์กฑ ์š”์†Œ(์—ฐ์†๋œ O) ๋ˆ„์  ๋ฐฉ๋ฒ•
๐Ÿ’ก ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๊ณ  ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง
๐Ÿ’ก ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํŒจํ„ด์„ ํ•™์Šต


๐Ÿ’ป ๋‚ด๊ฐ€ ์ œ์ถœํ•œ ์ฝ”๋“œ

t = int(input())

for _ in range(t):
    quiz = input() 
    score = 0 
    streak = 0  

    for char in quiz:
        if char == 'O':
            streak += 1
            score += streak  
        else:
            streak = 0  

    print(score)

๐Ÿ’ฌ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…

t = int(input())  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜ ์ž…๋ ฅ๋ฐ›๊ธฐ

for _ in range(t):  # t๋ฒˆ ๋ฐ˜๋ณต
    quiz = input()  # OX ๋ฌธ์ž์—ด ์ž…๋ ฅ๋ฐ›๊ธฐ
    score = 0  # ์ด ์ ์ˆ˜ ์ดˆ๊ธฐํ™”
    streak = 0  # ์—ฐ์†๋œ O์˜ ๊ฐœ์ˆ˜(๊ฐ€์‚ฐ์ ์šฉ) ์ดˆ๊ธฐํ™”

    for char in quiz:  # ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž ๊ฒ€์‚ฌ
        if char == 'O':  # O์ผ ๊ฒฝ์šฐ
            streak += 1  # ์—ฐ์† O ๊ฐœ์ˆ˜ +1
            score += streak  # ๋ˆ„์  ์ ์ˆ˜์— ์ถ”๊ฐ€
        else:  # X์ผ ๊ฒฝ์šฐ
            streak = 0  # ์—ฐ์† O ์ดˆ๊ธฐํ™”

    print(score)  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋ณ„ ์ ์ˆ˜ ์ถœ๋ ฅ

๐Ÿ›  ์‚ฌ์šฉํ•œ ํ•จ์ˆ˜

๐Ÿ”น input() ํ•จ์ˆ˜

  • ์—ญํ• : ๋ฌธ์ž์—ด ์ž…๋ ฅ๋ฐ›๊ธฐ
  • ์˜ˆ์‹œ:
    t = int(input())  # ์ˆซ์ž ์ž…๋ ฅ
    quiz = input()  # ๋ฌธ์ž์—ด ์ž…๋ ฅ

๐Ÿ”น for ๋ฐ˜๋ณต๋ฌธ

  • ์—ญํ• : ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ˆœํšŒ
  • ์˜ˆ์‹œ:
    for char in "OOXX":
        print(char)

๐Ÿ”น ๋ˆ„์  ๋ณ€์ˆ˜(streak) ์‚ฌ์šฉ

  • ์—ญํ• : O๊ฐ€ ์—ฐ์†๋  ๋•Œ ๋ˆ„์  ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ์˜ˆ์‹œ:
    if char == 'O':
        streak += 1
        score += streak
    else:
        streak = 0

๐Ÿ” ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ ๊ฐœ์„ ์ 

โœ… ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ์ง๊ด€์ ์ธ ํ’€์ด๋กœ ์ ํ•ฉํ•œ ์ฝ”๋“œ
โœ… ๊ฐ€๋…์„ฑ์ด ๋†’๊ณ , ๋ˆ„์ ํ•ฉ ๊ณ„์‚ฐ์ด ์‰ฌ์šด ๊ตฌ์กฐ
โœ… ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋งŽ์•„๋„ ๋ฌธ์ œ์—†์ด ๋™์ž‘ํ•˜๋Š” ์•ˆ์ •์ ์ธ ์ฝ”๋“œ

1. ํ•œ ์ค„๋กœ ์ž…๋ ฅ๋ฐ›์€ ํ›„ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์œผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ (์—ฐ์Šต์šฉ)

print([sum((i := 0) or [i := i + 1 if c == 'O' else 0][0] for c in input()) for _ in range(int(input()))])

โœ… ๋ณต์žกํ•˜์ง€๋งŒ ํ•œ ์ค„๋กœ ์ž‘์„ฑ ๊ฐ€๋Šฅ
โŒ ์‹ค์ „์—์„œ๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ (๊ฐ€๋…์„ฑ โ†“)


โœ… ์ตœ์ข… ์ •๋ฆฌ

โœ” ์—ฐ์†๋œ ์กฐ๊ฑด์„ ๋ˆ„์ ํ•˜์—ฌ ์ ์ˆ˜ ๊ณ„์‚ฐํ•˜๋Š” ํŒจํ„ด ์ตํžˆ๊ธฐ
โœ” if-else๋กœ ์กฐ๊ฑด ๋ถ„๊ธฐํ•˜๋Š” ์—ฐ์Šต
โœ” ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ํ•™์Šต

๐Ÿ“Œ ์ด์ œ ๋ฌธ์ž์—ด๊ณผ ์กฐ๊ฑด๋ฌธ์ด ํฌํ•จ๋œ ๋ฌธ์ œ๋ฅผ ๋” ํ’€์–ด๋ณด์ž! ๐Ÿš€๐Ÿ”ฅ

profile
์„œํˆด์ง€์–ธ์ • ๋Š˜ ํ–‰๋™์ด ๋จผ์ €์ด๊ธฐ๋ฅผ

0๊ฐœ์˜ ๋Œ“๊ธ€