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

[๋ฐฑ์ค€] ํŒŒ์ด์ฌ / ๋ฌธ์ž์—ด 1152 ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ 10809 ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜

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

๐Ÿ“Œ 1152 ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜

www.acmicpc.net/problem/1152

 

1152๋ฒˆ: ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜

์ฒซ ์ค„์— ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž์™€ ๋„์–ด์“ฐ๊ธฐ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์–ด๋Š” ๋„์–ด์“ฐ๊ธฐ ํ•œ ๊ฐœ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ๊ณต๋ฐฑ์ด ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. ๋˜ํ•œ

www.acmicpc.net

๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋‹ค. 

map์œผ๋กœ ๋„์–ด์“ฐ๊ธฐ ๊ตฌ๋ถ„ํ•œ list๋กœ ๋ฐ›๊ณ 

๊ทธ ๊ธธ์ด ์„ธ๊ธฐ!

 

๋‚ด ํ’€์ด

import sys
input = sys.stdin.readline

word = list(map(str, input().split()))
print(len(word))

๋‚ด ํ’€์ด2

n=input()
if n[0:1]==" " and n[len(n)-1:len(n)]==" ":
    print(n.count(" ")-1)
elif n[0:1]==" " or n[len(n)-1:len(n)]==" ":
    print(n.count(" "))
else:
    print(n.count(" ")+1)

์ „์— ๋‚ด๊ฐ€ ํ’€์—ˆ๋˜ ๊ธฐ๋ก์„ ๋ณด๋‹ˆ ํŠน์ดํ•˜๊ฒŒ ํ’€์—ˆ๋‹ค.

 

ํ•œ๋ฌธ์ž๋กœ ์ž…๋ ฅ๋ฐ›๊ณ  ๊ทธ ๋ฌธ์ž์˜ ๊ณต๋ฐฑ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ฒƒ

ํฌ๊ฒŒ ์ฐจ์ด๋Š” ์•ˆ๋‚˜์ง€๋งŒ ๋ฐ‘์˜ ๊ฒฝ์šฐ๊ฐ€ ๋” ๋น ๋ฅด๋‹ค .

 

๐Ÿ’™ ์‹ ๊ธฐํ•˜๊ฒŒ  ์ด ๋ฐฉ์‹์„ ๋จผ์ € ์ƒ๊ฐํ–ˆ๋‹ค๊ฐ€ ๊ทธ๋ƒฅ ์ฒซ๋ฒˆ์งธ ํ’€์ด๋กœ ํ’€์—ˆ๋Š”๋ฐ ๋ฌธ์ œ๋Š” ๊ธฐ์–ต๋ชปํ–ˆ์ง€๋งŒ ์ƒ๊ฐ์˜ ํ๋ฆ„์ด ๋˜‘๊ฐ™๋‹ค๋Š”๊ฒŒ ์›ƒ๊ฒผ๋‹ค.

 

 


๐Ÿ“Œ 10809 ์•ŒํŒŒ๋ฒณ ์ฐพ๊ธฐ

www.acmicpc.net/problem/10809

 

10809๋ฒˆ: ์•ŒํŒŒ๋ฒณ ์ฐพ๊ธฐ

๊ฐ๊ฐ์˜ ์•ŒํŒŒ๋ฒณ์— ๋Œ€ํ•ด์„œ, a๊ฐ€ ์ฒ˜์Œ ๋“ฑ์žฅํ•˜๋Š” ์œ„์น˜, b๊ฐ€ ์ฒ˜์Œ ๋“ฑ์žฅํ•˜๋Š” ์œ„์น˜, ... z๊ฐ€ ์ฒ˜์Œ ๋“ฑ์žฅํ•˜๋Š” ์œ„์น˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ์–ด๋–ค ์•ŒํŒŒ๋ฒณ์ด ๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด -1์„ ์ถœ

www.acmicpc.net

์ฒ˜์Œ์ƒ๊ฐ

๋ฐฐ์—ด์„ ์ฐพ๋Š” ๋ฌธ์ œ๋ฉด 

in์€ ์“ฐ์ง€๋ง๊ณ 

1) ์ด๋ถ„๋ถ„์„ , 2) ๋žญํฌ์ •๋ ฌ ์„ ์‚ฌ์šฉํ•˜์ž 

a๋ถ€ํ„ฐ z๊นŒ์ง€ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ์œ„์น˜ ์ฐพ๊ธฐ

 

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

import sys
import string

alphaDict={}
input = sys.stdin.readline
alpha = list(string.ascii_lowercase)
for i in alpha:
    alphaDict[i]=0;

word = input().strip()

for i in word:
    alphaDict[i]+=1
alphaList = list(alphaDict.values())
for i in range(len(alphaList)):
    if(alphaList[i]==0):
        alphaList[i]=-1

print(*alphaList)



๋ง๋„์•ˆ๋ผ ๋ฌธ์ œ๋ฅผ ์ž˜๋ชป์ฝ์—ˆ๋‹ค.

์•ŒํŒŒ๋ฒณ์ด ๋“ฑ์žฅํ•œ ํšŸ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋“ฑ์žฅํ•œ ์œ„์น˜์˜€๋‹ค.

OMG?...

 

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

import sys
import string

alphaDict={}
input = sys.stdin.readline
alpha = list(string.ascii_lowercase)
for i in alpha:
    alphaDict[i]=0;

word = input().strip()

for i in range(len(word)):
    alphaDict[word[i]]=i
alphaList = list(alphaDict.values())
for i in range(len(alphaList)):
    if(alphaList[i]==0):
        alphaList[i]=-1

print(*alphaList)

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ๋ฐ”๊ฟ”๋ณด์•˜๋Š”๋ฐ 0๋ฒˆ์งธ ์ž๋ฆฌ๋„ -1๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ.

์ด ์˜ค๋ฅ˜๋ฅผ ๋งž์ดํ•˜๋‹ˆ ,

๊ทธ๋ƒฅ ์•ŒํŒŒ๋ฒณ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„๋Š”๊ฒŒ ๋น ๋ฅด๊ฒ ๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์—ˆ๋‹ค.

 

 ์•„๋‹ˆ๋‹ค. ๋จผ์ € -1๋กœ ์‹น ๋ฐ”๊ฟ”์ฃผ๊ณ  +1 ์”ฉ ๋”ํ•ด์ฃผ๋ฉด ๋˜์ง€ ์•Š๋‚˜? ์•ˆ๋œ๋‹ค. ๊ทธ๋Ÿผ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜จ ์•ŒํŒŒ๋ฒณ์€ ๋‘๋ฒˆ์”ฉ ๋” ๋”ํ•ด์ง„๋‹ค.

 

๋‚ด ํ’€์ด1

import sys
import string

alphaDict={}
input = sys.stdin.readline
alpha = list(string.ascii_lowercase)
word = input().strip()
ans=[]
for i in alpha:
    if(i in word):
        ans.append(word.index(i))
    else:
        ans.append(-1)

print(*ans)

๊ฒฐ๊ตญ ํšจ์œจ์„ฑ ์ƒ๊ฐ์ด ๋‚˜์ง€ ์•Š์•„.

 

a~z๋ฆฌ์ŠคํŠธ๋ฅผ ๋Œ๋ฉฐ word์•ˆ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ ๊ทธ index๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.

์•„์ฃผ ๋Š๋ฆฌ๊ฒŒ ๊ฒจ์šฐ ํ†ต๊ณผ 

๊ณ ๋ฏผ์„ ๋งŽ์ด ํ•˜๋‹ค 

์ฒ˜์Œ ์ž ๊น ์Šค์นœ Ascii ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•ด๋ณด๊ธฐ๋กœ ๊ฒฐ์‹ฌ!

 

 

๋‚ดํ’€์ด 2

import sys
import string

word = input().strip()

asciiList=[]
for i in word:
    asciiList.append(ord(i))

asciiSet = set(asciiList)
for j in range(97,123):
    if j in asciiSet:
        print(asciiList.index(j),end=" ")
    else:
        print(-1,end=" ")

1) word ์ž…๋ ฅ๋ฐ›์€๊ฑธ ASCII code๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ list์— ์ €์žฅ

2) set์œผ๋กœ ๋”ฐ๋กœ ์ €์žฅ

3) a-z๊นŒ์ง€์˜ ASCii code๋ฅผ ๋Œ๋ฉฐ set์— ์žˆ๋Š”์ง€ ํ™•์ธ  ์žˆ์œผ๋ฉด index๋ฅผ ์ €์žฅ 

 

 

์ด๋ ‡๊ฒŒ ํ–‡๋Š”๋ฐ, ascii code๋ฅผ ์ด์šฉํ•œ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค.

 

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

list = [-1]*26
word = [ord(i)-ord('a') for i in input()]

for i,v in enumerate(word):
    if(list[v]==-1):
        list[v]=i

print(*list)

๋˜‘๊ฐ™์ด ASCII ๋ฅผ ํ™œ์šฉํ–ˆ์ง€๋งŒ ๋‚˜๋ณด๋‹ค ์‹œ๊ฐ„์„ ๋ฐ˜์ด๋‚˜์ค„์ธ code

 

 

๋””๋ฒ„๊น…์„ ํ•ด๋ณด๋ฉฐ ๋กœ์ง์„ ์ดํ•ดํ–‡๋Š”๋ฐ

1) -1๋กœ ์ด๋ฃจ์–ด์ง„ list ์ƒ์„ฑ

2) word๋ฅผ input์œผ๋กœ ๋ฐ›์œผ๋ฉฐ ASCII - ASCII(a)ํ•œ ๊ฐ’๋“ค์„  ์ €์žฅ   == a์˜ ๊ฐ’์ด 0์ด ๋˜๋„๋ก 

3) word๋ฅผ ๋Œ๋ฉฐ ํ•ด๋‹น ๊ฐ’์˜ list index๊ฐ€ -1์ด๋ฉด Index๋กœ ๋ฐ”๊ฟ”์คŒ

 

list์˜ index  = ์•ŒํŒŒ๋ฒณ์˜ ASCII = word์˜ ๊ฐ’  ์ด๋ ‡๊ฒŒ ํ™œ์šฉํ•ด์„œ ํ•œ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ’™ ์•ŒํŒŒ๋ฒณ์„ ์ด์šฉํ•œ ๋ฌธ์ž์—ด์— ๊ด€ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€ ๋งค์ง์„ ์–ป์€ ๊ฒƒ ๊ฐ™๋‹ค. 

 

 

 

+ dict ์ƒˆ๋กœ ๋งŒ๋“œ๋Š”๋ฒ• ์•Œ๊ฒŒ๋จ!@ 

 

๊ธฐ์กด ๋ฐฉ๋ฒ• ์ด๋ ‡๊ฒŒ for ๋ฌธ ๋Œ๋ฆฌ๊ธฐ

alp=['a','b','c']
num=[1,2,3]

for i in range(len(aList)):
	aDict[i]=num[i]

    
// aDict = {'a':1, 'b':2, 'c':3 }

zip์„ ํ†ตํ•ด ํ•œ์ค„๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ 

aDict = dict(zip(alp,num))

๋Œ“๊ธ€