λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ”‘ μ•Œκ³ λ¦¬μ¦˜/λ°±μ€€ Python

[λ°±μ€€] 파이썬 / λ¬Έμžμ—΄ 2914 ν¬λ‘œμ•„ν‹°μ•„μ•ŒνŒŒλ²³ 1427 μ†ŒνŠΈμΈμ‚¬μ΄λ“œ

by Tamii 2021. 4. 27.
λ°˜μ‘ν˜•

πŸ“Œ2914 ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³

www.acmicpc.net/problem/2941

 

2941번: ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³

μ˜ˆμ „μ—λŠ” μš΄μ˜μ²΄μ œμ—μ„œ ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³μ„ μž…λ ₯ν•  μˆ˜κ°€ μ—†μ—ˆλ‹€. λ”°λΌμ„œ, λ‹€μŒκ³Ό 같이 ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³μ„ λ³€κ²½ν•΄μ„œ μž…λ ₯ν–ˆλ‹€. ν¬λ‘œμ•„ν‹°μ•„ μ•ŒνŒŒλ²³ λ³€κ²½ č c= Δ‡ c- dΕΎ dz= Δ‘ d- lj lj nj nj š s= ΕΎ z=

www.acmicpc.net

처음 λ”± λ“  생각은

 μΌλ‹¨ μ•ŒνŒŒλ²³μœΌλ‘œ μ „λΆ€ 보고 κΈ€μžμˆ˜λ₯Ό μ„Ό 후에 

=  - j 

이 μ„Έκ°€μ§€μ˜ μ•žμ˜ λ¬Έμžκ°€ μΌ€μ΄μŠ€μ— ν•΄λ‹Ήν•˜λ©΄ 개수 -1 ν•΄μ£ΌλŠ” 것!

 

λ§™μ†Œμ‚¬.. λ˜‘λ˜‘ν•œ 파이썬.. -1도 μ„Έμ£Όλ„€..? λ‹€μ‹œλ‹€μ‹œ..

 

 

내풀이2 (μ˜€λ‹΅)

import sys
input = sys.stdin.readline

word = input().strip()

cnt = len(word)

for i in range(len(word)):
    if i>0:
        if word[i]=="-":
            if word[i+1]=="c" or word[i-1]=="d":
                cnt-=1
        elif word[i]=="j":
            if word[i-1]=="l" or word[i-1]=="n":
                cnt-=1
        elif word[i]=="=":
            if word[i-1]=="c" or word[i-1]=="s":
                cnt-=1
            elif word[i-1]=="z":
                cnt-=1
                if i>1:
                    if word[i-2]=="d":
                        cnt-=1
print(cnt)
        

계단식 if문이 μ™„μ„±λ˜μ—ˆλ‹€.

μˆ¨μ€ testcaseμ—μ„œ 생긴 μ˜€λ‹΅μ΄μ—ˆκ³ , 그게 μ•„λ‹ˆμ–΄λ„λ­”κ°€ 잘λͺ»λλ‹€λŠ” 생각이 λ“€μ—ˆλ‹€.

 

 

 

λ‚΄ 풀이 3

coratia=['c=','c-','dz=','d-','lj','nj','s=','z=']
word=input().strip()

for i in coratia:
    word=word.replace(i,'?')
print(len(word))

세상에..

replace? 

μ™œ 이생각을 λͺ»ν–ˆμ—ˆμ§€? 과거의 λ‚˜ λŒ€λ‹¨ν•΄. λΉ λ₯΄κ³  쉽닀.

 

πŸ’™ λ•Œλ‘œλŠ” μ‚¬κ³ μ˜ μ „ν™˜μ„! λ‚΄κ°€ ν–ˆλ˜ 풀이에 κ°‡νžˆμ§€ 말고 μƒˆλ‘­κ²Œ μƒκ°ν•΄λ³΄μž


πŸ“Œ1427 μ†ŒνŠΈμΈμ‚¬μ΄λ“œ

www.acmicpc.net/problem/1427

 

1427번: μ†ŒνŠΈμΈμ‚¬μ΄λ“œ

첫째 쀄에 μ •λ ¬ν•˜κ³ μžν•˜λŠ” 수 N이 주어진닀. N은 1,000,000,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€.

www.acmicpc.net

μž…λ ₯ λ²”μœ„κ°€ λ„ˆλ¬΄ μ»€μ„œ κ·Έλƒ₯ μ •λ ¬λ‘œ μ•ˆλ κ²ƒκ°™μ€ λŠλ‚Œμ΄μ—ˆλ‹€.

import sys
input = sys.stdin.readline

rank = [0]*1000000000

num = input().strip()

for i in num:
    rank[int(i)]+=1

for j in range(len(rank)-1,0,-1):
    if rank[j]!=0:
        print(j)

κ·Έλž˜μ„œ μ΄λ ‡κ²Œ μ§œλ΄€λŠ”λ° λ§₯뢁이 λ‚ λΌκ°ˆλ»” ν–‡λ”°..

 

내풀이 1

import sys
input = sys.stdin.readline

numLst=[]
num = input().strip()
ans=""

for i in num:
    numLst.append(int(i))

numLst=sorted(numLst,reverse=True)

for i in numLst:
    ans+=str(i)
print(ans)

톡과!

 

살짝 더 κ°„λ‹¨ν•˜κ²Œ λ°”κΎΌλ‹€λ©΄ 

λ‚΄ 풀이2

import sys
input = sys.stdin.readline

numLst=[]
num = input().strip()


for i in num:
    numLst.append(i)

numLst=sorted(numLst,reverse=True)

numLst = "".join(numLst)
print(numLst)

κ°„κ³Όν•œ 점 :  intν˜•μœΌλ‘œ 바꾸지 μ•Šμ•„λ„ μ •λ ¬λœλ‹€

배열을 문자둜 λ°”κΏ€λ•Œ "".join(λ°°μ—΄) ν•΄μ£Όλ©΄ λœλ‹€.

 

 

πŸ’™κ°„λ‹¨ν•œκ±Έ μžŠμ–΄λ²„λ¦¬λ‹ˆ 멀리 λŒμ•„κ°€κ²Œ λœλ‹€. 

 

 

 

λŒ“κΈ€