๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ Python

[๋ฐฑ์ค€] ํŒŒ์ด์ฌ /๋ฌธ์ž์—ด 1316 ๊ทธ๋ฃน๋‹จ์–ด์ฒด์ปค

by Tamii 2021. 4. 26.
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ 1316 ๊ทธ๋ฃน๋‹จ์–ด์ฒด์ปค

www.acmicpc.net/problem/1316

 

1316๋ฒˆ: ๊ทธ๋ฃน ๋‹จ์–ด ์ฒด์ปค

๊ทธ๋ฃน ๋‹จ์–ด๋ž€ ๋‹จ์–ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์— ๋Œ€ํ•ด์„œ, ๊ฐ ๋ฌธ์ž๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ๋งŒ์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ccazzzzbb๋Š” c, a, z, b๊ฐ€ ๋ชจ๋‘ ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ณ , kin๋„ k, i, n์ด ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ

www.acmicpc.net

๊ทธ๋ฃน๋‹จ์–ด ์˜๋ฏธ

ํ•œ๋ฒˆ ๋‚˜์™”๋˜ ๋‹จ์–ด๋Š” ๋‹ค์Œ ์ฐจ๋ก€์— ๋‚˜์˜ค์ง€ ์•Š์•„์•ผ ํ•จ 

๋ฐฐ์—ด ๋‚ด ์กด์žฌ ํ™•์ธ์—์„œ in์„ ์•ˆ์“ฐ๋ ค๊ณ  ํ–ˆ์ง€๋งŒ 

๋งˆ๋•…ํ•œ ๋ฐฉ๋ฒ•์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„

 

๋‚ด ํ’€์ด

import sys
input = sys.stdin.readline

n= int(input())
cnt=0
def isGroup(word):
    checkList=[]
    for j in word:
        if j in checkList and j!=checkList[-1]:
            return False
        else:
            checkList.append(j)
            continue
    return 1

for i in range(n):
    word=input().strip()
    if isGroup(word):
        cnt+=1
print(cnt)

1) ๋‹จ์–ด ๋‚ด ์•ŒํŒŒ๋ฒณ์„ ๋Œ๋ฉฐ checkList์— ๋„ฃ์–ด์คŒ

2) ์•ŒํŒŒ๋ฒณ์ด ์ด๋ฏธ checkList์— ์žˆ๋Š”๋ฐ ๋งˆ์ง€๋ง‰ ๊ธ€์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด False return

3) ๋‹ค ๋„๋Š”๋ฐ ์„ฑ๊ณตํ–ˆ๋‹ค๋ฉด return True

 

๋‚ดํ’€์ด2

cnt=0
n=int(input())

for i in range(n):
    wCheck=0
    word=input().strip()
    sWord = word

    for j in sWord:
        if j in word:
            g1=word.count("*")
            word=word.replace(j,"*")
            g2=word.count("*")
            diff = g2-g1

            if diff>1:
                if "*" not in word[g1+diff:]:
                    wCheck+=diff
            else:
                wCheck+=1
    
    if wCheck == len(word):
        cnt+=1
print(cnt)

๊ณผ๊ฑฐ์˜ ๋‚ด ํ’€์ด๋ฅผ ๋‹ค์‹œ ๋ณด์•˜๋”๋‹ˆ ๋˜ ํŠน์ดํ•œ ๋ฐฉ๋ฒ•์„ ์“ฐ๊ณ  ์žˆ์—ˆ๋‹ค.

 

1) ์•ŒํŒŒ๋ฒณ์„ ๋Œ๋ฉฐ "*"๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค 

2) ๋ฐ”๊พธ๊ธฐ์ „ ๊ณผ ํ›„์˜ "*"๊ฐœ์ˆ˜ ์ฐจ์ด๋ฅผ ํ†ตํ•ด ๋ฐ”๋€ ๊ฐœ์ˆ˜ ํ™•์ธ

3) ์ฐจ์ด๊ฐ€ 2๊ฐœ์ด์ƒ์ผ๋•Œ => ํ˜„์žฌํƒ์ƒ‰๊ตฌ๊ฐ„์˜ ๋’ค์— "*" ์ด ๋ฐ”๋€Œ์ง€ ์•Š์•˜์œผ๋ฉด ์—ฐ์†ํ•œ ๊ฐ’์ด๋‹ˆ ๋”ํ•ด์ฃผ๊ธฐ 

 

 

ex) abcdea ์ž…๋ ฅ 

=> *bcde* ์ด๋ ‡๊ฒŒ ๋ฐ”๋€Œ์—ˆ๊ณ ,  ํ˜„์žฌํƒ์ƒ‰๊ตฌ๊ฐ„+๋ฐ”๋€๊ฐฏ์ˆ˜ ๋ณด๋‹ค ๋’ค์—์„œ "*"์ด ๋ฐ”๋€์ง€ ํ™•์ธํ•ด์•ผ ํ•จ

๋ฐ”๋€Œ์ง€ ์•Š์•˜๋‹ค๋ฉด, ์—ฐ์†๊ฐ’์ด๋‹ˆ +diff๋งŒํผ ๋”ํ•ด์ฃผ๊ณ 

๋ฐ”๋€Œ์—ˆ๋‹ค๋ฉด, ์—ฐ์†๊ฐ’์ด ์•„๋‹ˆ๋‹ˆ ๋”ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค

5) ์—ฐ์†๊ฐ’ ํ˜น์€ ๋‹จ์ผ๊ฐ’์„ ์ฒดํฌํ•œ ๊ฐœ์ˆ˜์™€ word์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด cnt+1 

 

๊ฒฐ๋ก ์ ์œผ๋กœ 2๋ฒˆ์งธ ํ’€์ด๊ฐ€ ๋” ๋น ๋ฅด๋‹ค

 

๋‹ค๋ฅธ ํ’€์ด

n=int(input())
wordLst=[]
for _ in range(n):
    wordLst.append(input().strip())

cnt=0
for word in wordLst:
    ans=[]
    cnt+=1
    cur=word[0]
    for i in word:
        if cur==i:
            continue
        elif i in ans:
            cnt-=1
            break
        else:
            ans.append(cur)
            cur=i
print(cnt)

๋” ๊ฐ„๋‹จํ•œ ๋‹ค๋ฅธ ํ’€์ด๋„ ๋ณด์•˜๋‹ค.

1) ๋‹จ์–ด ๋Œ๋ฉด์„œ 

 

๐Ÿ’™ ํ•˜๋‚˜์˜ ๋ฌธ์ œ์ธ๋ฐ ์™„์ „ํžˆ ๋‹ค๋ฅด๊ฒŒ ํ’€์ดํ–ˆ๋‹ค. ๊ณผ๊ฑฐ์˜ ๋‚˜๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋””๋ฒ„๊น…๋„ ์—ด์‹ฌํžˆ ํ–‡๋Š๋ฐ ์ข€๋” ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ ๋• ์–ด๋–ป๊ฒŒ ๋ ๊นŒ..? ๋‚œํ•ญ์ด ์˜ˆ์ƒ๋œ๋‹ค.. ใ…Žใ…Ž

๋Œ“๊ธ€