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

[๋ฐฑ์ค€] ํŒŒ์ด์ฌ / ๋ฌธ์ž์—ด 1157๋‹จ์–ด๊ณต๋ถ€ 9012 ๊ด„ํ˜ธ 11721 ๋Š์–ด์ฝ๊ธฐ

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

๐Ÿ“Œ 1157 ๋‹จ์–ด๊ณต๋ถ€

www.acmicpc.net/problem/1157

 

1157๋ฒˆ: ๋‹จ์–ด ๊ณต๋ถ€

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net

 

๋‚ดํ’€์ด (์‹œ๊ฐ„์ดˆ๊ณผ)

import sys
input = sys.stdin.readline

word = input().strip().upper()
cntDict = {}

for i in word:
    cntDict[i]=word.count(i)

it = sorted(list(cntDict.items()),key=lambda x: x[1],reverse=True)

if(len(it)==1):
    print(it[0][1])
elif(it[0][1]==it[1][1]):
    print("?")
else:
    print(it[0][0])

1) word์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ’์„ dictionary ๋กœ ๋ณด๊ด€ํ•œ ๋‹ค์Œ์— 

2) word๋ฅผ ๋Œ๋ฉฐ ๊ทธ ๊ฐœ์ˆ˜๋ฅผ list์— ์ €์žฅ

3) list๋ฅผ count ๊ฐœ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ

4) ๊ฐ’์ด 1๊ฐœ์ธ๊ฒฝ์šฐ, max count๊ฐ€ ์ค‘๋ณต์ธ ๊ฒฝ์šฐ๋ฅผ ๊ตฌ๋ถ„ํ•ด ์ถœ๋ ฅ 

 

์‹คํŒจ ์›์ธ :  ๋ถˆํ•„์š”ํ•œ ๊ณผ์ •์„ ๋งŽ์ด ๊ฑฐ์นœ๋‹ค. ๋”•์…”๋„ˆ๋ฆฌ์ƒ์„ฑ -> ์ค‘๋ณต count -> ์ •๋ ฌ 

 

์ค‘๋ณต๊ณผ ๋ถˆํ•„์š”ํ•จ์„ ์—†์•  ๋ณด์ž 

 

๋‚ด ํ’€์ด

import sys
input = sys.stdin.readline

word = input().strip().upper()
cntList=[]
setList = list(set(word))


for i in setList:
    cntList.append(word.count(i))
if(cntList.count(max(cntList))>1):
    print("?")
else:
    print(setList[cntList.index(max(cntList))])

1) word์˜ ์ค‘๋ณต์—†์•ค list์ƒ์„ฑ = setList

2) setList๋ฅผ ๋Œ๋ฉฐ word๋‚ด ๊ฐœ์ˆ˜ ์„ธ๊ธฐ

3) ๊ฐœ์ˆ˜ list์˜ max๊ฐ€ 2๊ฐœ ์ด์ƒ์ด๋ฉด ? ์ถœ๋ ฅ

์•„๋‹ˆ๋ผ๋ฉด cntList์˜ ์ตœ๋Œ€๊ฐ’์˜ Index๋ฅผ ์ฐพ์•„ setList์— ๋Œ€์ž…ํ•ด ์ตœ๋Œ€ count ์˜ ๋ฌธ์ž ์ถœ๋ ฅ

 

ํฌ์ธํŠธ!

์ตœ๋Œ€๊ฐ’์ด ๋ช‡๊ฐœ์ธ์ง€ ์„ธ๊ธฐ : a.count(max(a)) ์ž๊ธฐ ์ž์‹ ์˜ max๋ฅผ count ํ•˜๋ฉด ๋จ

๋ช‡๊ฐœ์ธ์ง€ ์ฐพ์„ ๋•Œ set์„ ์ด์šฉํ•˜์—ฌ ์ค‘๋ณต ์ค„์ด๊ธฐ

 

๐Ÿ’™์˜ˆ์ „์— ๋‚ด๊ฐ€ ํ’€์—ˆ๋˜ ํ’€์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์‹œ ๊ฐœ์„ ํ–ˆ๋‹ค. ์ฒ˜์Œ ๊ตฌํ˜„ํ•  ๋•Œ๋ถ€ํ„ฐ ํ•จ์ˆ˜์˜ ํšจ์œจ์„ฑ์„ ๋”ฐ์ง€๋‹ค๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ์ž˜ ์จ์ง€์ง€ ์•Š๋Š”๋‹ค. 

์ผ๋‹จ ๊ตฌํ˜„ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š”๊ฒƒ & ์ฝ”๋“œ์˜ ํšจ์œจ์„ฑ์„ ๊ณ ๋ฏผํ•˜๋Š”๊ฒƒ ์˜ ์ ์ ˆํ•œ ์กฐํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 


๐Ÿ“Œ 9012 ๊ด„ํ˜ธ

www.acmicpc.net/problem/9012

 

9012๋ฒˆ: ๊ด„ํ˜ธ

๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Parenthesis String, PS)์€ ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ์ธ ‘(’ ์™€ ‘)’ ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ๊ทธ ์ค‘์—์„œ ๊ด„ํ˜ธ์˜ ๋ชจ์–‘์ด ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Valid PS, VPS)์ด๋ผ๊ณ 

www.acmicpc.net

๋‚ดํ’€์ด(์˜ค๋‹ต)

n= int(input())


def isVps(word):
    psL="("
    psR=")"
    cnt=0;
    if(word.count(psL)==word.count(psR)):
        return "YES"
    else:
        return "NO"


vpsList = [input() for _ in range(n)]
for i in vpsList:
    print(isVps(i))

์ฒ˜์Œ์—๋Š” ์™ผ๊ด„ํ˜ธ, ์˜ค๋ฅธ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งž์œผ๋ฉด ๋˜๊ฒ ์ง€ ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ์•„๋‹ˆ์—ˆ๋‹ค

 

๋‚˜์˜ ์‹ค์ˆ˜ ๊ณผ์ •

1. ์™ผ๊ด„ํ˜ธ ์˜ค๋ฅธ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์œผ๋ฉด VPS

2. ๋์ด ์˜ค๋Š˜๊ด„ํ˜ธ๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ฌธ์ž์—ด

 

 

๊ณ ๋ฏผ์„ ํ•ด๋ณด๋‹ˆ "("์™ผ๊ด„ํ˜ธ๋ฅผ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด๋†“๊ณ   ")"์šฐ๊ด„ํ˜ธ๊ณผ ๋‚˜์˜ฌ๋•Œ ๋งˆ๋‹ค ๋นผ์ฃผ๋ฉด ๋œ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋บ„๊ฒŒ ์—†๊ฑฐ๋‚˜, ๋‹ค๋บ๋Š”๋ฐ๋„ ๋‚จ์•„์žˆ์œผ๋ฉด "NO"

 

๋‚ด ํ’€์ด

n= int(input())


def isVps(word):
    stackLst=[]

    for i in word:
        if i=="(":
            stackLst.append("(")
        else:
            if len(stackLst)==0:
                return "NO"
            stackLst.pop()
    if stackLst ==0:
        return "YES"
    else:
        return"NO"


vpsList = [input() for _ in range(n)]
for i in vpsList:
    print(isVps(i))

 

 

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

for _ in range(int(n)):
    stackLst = []
    flag = True
    word = input()
    #print(word)
    for i in word:
        if i == '(':
            stackLst.append(i)
        if i == ')':
            try:
                stackLst.pop(-1)
            except:
                flag = False
                break

    #print(stackLst)
    if len(stackLst) == 0 and flag == True:
        print('YES')
    else:
        print('NO')
    stackLst.clear()

๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ

")"๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ด์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์Šคํƒ์— popํ•  "(" ๊ด„ํ˜ธ๊ฐ€ ์—†์„ ์‹œ breakํ•˜๊ณ  flag๋ฅผ ์ฃผ์–ด ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

 

 

 

๐Ÿ’™์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด๋ฅผ ์‹œ์ž‘ํ•œ ์ง€ ์–ผ๋งˆ ์•ˆ๋˜๋‹ค ๋ณด๋‹ˆ ์Šคํƒ์„ ํ™œ์šฉํ•˜์ž๋Š” ์•„์ด๋””์–ด ์ž์ฒด๊ฐ€ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•˜๋‹ค.

์ข€๋” ๋งŽ์ด ํ’€์–ด๋ณด๋ฉด ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋ฌธ์ œ์— ์‚ฌ์šฉํ•  ๊ฒƒ๋“ค์„ ๋ฐœ๊ฒฌํ•  ๊ฒƒ์ด๋‹ค .(๋ฏฟ์Œ)

 

 

๐Ÿ“Œ 11721 ์—ด๊ฐœ์”ฉ ๋Š์–ด ์ถœ๋ ฅํ•˜๊ธฐ

 

www.acmicpc.net/problem/11721

 

11721๋ฒˆ: ์—ด ๊ฐœ์”ฉ ๋Š์–ด ์ถœ๋ ฅํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๊ธธ์ด๊ฐ€ 0์ธ ๋‹จ์–ด๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net

๋‚ดํ’€์ด

import sys
import math
input = sys.stdin.readline
word = input().strip()

for i in range(math.ceil(len(word)/10)):
    print(word[10*i:10*(i+1)])

๋‚˜๋ˆ„๊ธฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์˜ฌ๋ฆผํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด math๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๊ทธ๋ƒฅ ๋‚˜๋ˆ ์ค€ ๊ฒฐ๊ณผ๋ฅผ Int๋กœ ๊ฐ์‹ธ์ฃผ๊ณ  +1 ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

 

math.ceil(len(word)/10)

len(word)/10+1

๋Œ“๊ธ€