์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/ํŒŒ์ด์ฌ

[๋ฐฑ์ค€ ํŒŒ์ด์ฌ] ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ - Lv6. ์‹ฌํ™” 1

HHRR 2023. 6. 3. 23:46

# 25083 ์ƒˆ์‹น

print("         ,r'\"7")
print("r`-_   ,'  ,/")
print(" \\. \". L_r'")
print("   `~\\/")
print("      |")
print("      |")

- " ์ถœ๋ ฅ : \"

- \ ์ถœ๋ ฅ : \\

 

 

# 3003 ํ‚น, ํ€ธ, ๋ฃฉ, ๋น„์ˆ, ๋‚˜์ดํŠธ, ํฐ

A = list(map(int, input().split()))

print(1-A[0], 1-A[1], 2-A[2], 2-A[3], 2-A[4], 8-A[5])

 

 

# 2444 ๋ณ„์ฐ๊ธฐ-7

n = int(input())
for i in range(1, n+1):
    print(' '*(n-i)+'*'*(2*i-1))
for i in range(n-1, 0, -1):
    print(' '*(n-i)+'*'*(2*i-1))

- ์—ฐ๊ฒฐํ•ด์„œ ์ถœ๋ ฅํ•  ๋•Œ + ์‚ฌ์šฉ

- ์—ญ์ˆœ ์ถœ๋ ฅ (n-1,0,-1)

 

 

# 10988 ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ

# ์•ŒํŒŒ๋ฑƒ ์†Œ๋ฌธ์ž ์ฃผ์–ด์ง€๊ณ  ์•ž๋’ค ๋˜‘๊ฐ™์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0 ์ถœ๋ ฅ

A = input()
if A == A[::-1] :
    print("1")
else :
    print("0")

โœ”๏ธ ํŒŒ์ด์ฌ ๋ฌธ์ž์—ด ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅ : 

1. ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค์–ด์„œ reverse() ์ด์šฉ

-> reverse(A)

2. [::-1] ์ด์šฉ

-> A[::-1]

 

 

# 1157 ๋‹จ์–ด๊ณต๋ถ€

#๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ ์•Œ์•„๋ณด๊ธฐ

word = input().upper() #์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž ์ „๋ถ€ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
word_list = list(set(word))
cnt= []
#ZZA
#word_list - ZA
for i in word_list : #i๋Š” ์ˆœ์„œ๋Œ€๋กœ word_list์˜ ๋ฌธ์ž๋ฅผ ํ• ๋‹น๋ฐ›์Œ
    tmp = word.count(i) #๋‹จ์–ด๊ฐ€ word์— ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์นด์šดํŠธํ•ด์„œ tmp ๋ณ€์ˆ˜์— ๋„ฃ์Œ
    cnt.append(tmp) #cnt ๋ฆฌ์ŠคํŠธ์— tmp๊ฐ’ ์ˆœ์„œ๋Œ€๋กœ ๋„ฃ์Œ 

if cnt.count(max(cnt))>=2: #cnt์˜ ์ตœ๋Œ“๊ฐ’ ๊ฐœ์ˆ˜๊ฐ€ 2 ์ด์ƒ์ด๋ฉด ? ์ถœ๋ ฅ
    print("?")
else:
    print(word_list[cnt.index(max(cnt))]) #cnt ์ตœ๋Œ“๊ฐ’์˜ index๊ฐ’ = word_list์˜ index๊ฐ’

โœ”๏ธ ํŒŒ์ด์ฌ ๋Œ€์†Œ๋ฌธ์ž ๋ณ€๊ฒฝ ํ•จ์ˆ˜

 1. ๋ฌธ์ž์—ด -> ๋Œ€๋ฌธ์ž : string.upper()
 2. ๋ฌธ์ž์—ด -> ์†Œ๋ฌธ์ž : string.lower()
 3. ๋ฌธ์ž ๋Œ€๋ฌธ์ž์ธ์ง€ ํ™•์ธ : string.isupper (๋ฐ˜ํ™˜๊ฐ’ boolean)
 4. ๋ฌธ์ž ์†Œ๋ฌธ์ž์ธ์ง€ ํ™•์ธ : string.islower (๋ฐ˜ํ™˜๊ฐ’ boolean)

 

โœ”๏ธ ๋ฌธ์ž์—ด์—์„œ ๋™์ผํ•œ ๋ฌธ์ž ๊ฐœ์ˆ˜ ์ฐพ๊ธฐ

 ๋ฌธ์ž์—ด A, ์ค‘๋ณต ์ œ๊ฑฐ ๋ฌธ์ž์—ด set(A)

 for i in set(A) :  -> i๋Š” A์˜ ๋ฌธ์ž ํ•˜๋‚˜์”ฉ ํ• ๋‹น๋ฐ›์Œ(์ค‘๋ณตx)

        tmp = A.count(i)  -> A์—์„œ i์˜ ๊ฐœ์ˆ˜ ์นด์šดํŠธ

        cnt.append(tmp) -> A์˜ ๋ฌธ์ž ๊ฐœ์ˆ˜ ์นด์šดํŠธ๊ฐ’ cnt๋ผ๋Š” ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด์ฃผ๊ธฐ

 

โœ”๏ธ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋™์ผ ํ•œ ๊ฒฝ์šฐ ์ฐพ๊ธฐ (ex. zzaa)

 ๋ฌธ์ž์—ด : A

 A.count(max(cnt)) >=2 : A์˜ ๋™์ผํ•œ ๋ฌธ์ž ๊ฐœ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์˜ count๊ฐ’์ด 2 ์ด์ƒ์ผ ๋•Œ

 

 

# 4344 ํ‰๊ท ์€ ๋„˜๊ฒ ์ง€

Q. ๊ฐ ์ผ€์ด์Šค๋งˆ๋‹ค ํ•œ ์ค„์”ฉ ํ‰๊ท ์„ ๋„˜๋Š” ํ•™์ƒ๋“ค์˜ ๋น„์œจ์„ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์†Œ์ˆ˜์  ์…‹์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

C = int(input())
cal = 0.0
cnt = 0

for i in range(C) :
    score = list(map(int, input().split()))
    N = score[0]
    for j in range(1,N+1):
        cal += score[j]
    for k in range(1,N+1) :
        if score[k]>(cal/N) :
            cnt += 1
    print(f'{((cnt/N)*100):.3f}%')
    cal = 0
    cnt = 0
    score.clear()

- ๋ณต์žกํ•˜๊ฒŒ ํ‘ผ ๊ฑฐ ๊ฐ™๊ธด ํ•œ๋ฐ ๋‚ด๊ฐ€ ๋ฌธ์ œ ํ‘ผ ๋ฐฉ๋ฒ•

1) ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜ C ์ž…๋ ฅ๋ฐ›๊ธฐ

2) ํ•œ ์ค„์— ํ•™์ƒ์ˆ˜์™€ ํ•™์ƒ๋“ค์˜ ์ ์ˆ˜๋ฅผ ๋‹ค ์ž…๋ ฅ๋ฐ›์•„์•ผํ•จ

 -> score ๋ฆฌ์ŠคํŠธ๋กœ ๋‹ค ๋ฐ›๊ณ  score[0]๋ฅผ ํ•™์ƒ์ˆ˜ N์œผ๋กœ ์„ค์ •, score[1]~score[N]์— ํ•™์ƒ ์ ์ˆ˜ ๋„ฃ์Œ

3) ํ•™์ƒ๋“ค ํ‰๊ท  ๊ตฌํ•œ ํ›„์— ํ‰๊ท  ๋„˜๋Š” ํ•™์ƒ๋“ค ์ˆ˜ ๊ตฌํ•˜๊ธฐ

 -> for๋ฌธ (๋ณ€์ˆ˜ j) ์‚ฌ์šฉํ•ด์„œ cal์— ํ•™์ƒ๋“ค ์ ์ˆ˜ ํ•ฉ ๋„ฃ์Œ

 -> for๋ฌธ (๋ณ€์ˆ˜ k) ์‚ฌ์šฉํ•ด์„œ score ๋ฆฌ์ŠคํŠธ์—์„œ ์ ์ˆ˜ ํ‰๊ท (cal/N) ์ด์ƒ์˜ ํ•™์ƒ ์ˆ˜ ์นด์šดํŠธ cnt ํ•ด์คŒ

4) ํ‰๊ท  ๋„˜๋Š” ํ•™์ƒ๋“ค ๋น„์œจ ๊ตฌํ•˜๊ธฐ (์ถœ๋ ฅ : ์†Œ์ˆซ์  3์งธ์ž๋ฆฌ๊นŒ์ง€, % ๋ถ™์—ฌ์„œ ์ถœ๋ ฅ)

 -> ํ‰๊ท  ๋„˜๋Š” ํ•™์ƒ ์ˆ˜ / ์ „์ฒด ํ•™์ƒ ์ˆ˜ * 100

 -> ์ถœ๋ ฅ ํฌ๋งท print(f'{์ถœ๋ ฅ๊ฐ’:.3f}%')

5) ์ดˆ๊ธฐํ™” ํ•ด์ฃผ๊ณ  ๋‹ค์Œ case ์ง„ํ–‰

 

โœ”๏ธ ํ‰๊ท  ๊ตฌํ•˜๊ธฐ ์ฝ”๋“œ ์ •๋ฆฌ -> sum ์‚ฌ์šฉ : avg = sum(score[1:])/score[0]  

 

 

# 2941 ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ

Q. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ๋ช‡ ๊ฐœ์˜ ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

#ํฌ๋กœ์•„ํ‹ฐ์•„ ๋ฌธ์ž๋“ค ๋ฆฌ์ŠคํŠธ๋กœ ์ง€์ • 
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
word = input()

for i in croatia :
    word = word.replace(i,'!') #ํฌ๋กœ์•„ํ‹ฐ์•„ ๋ฌธ์ž ๋‚˜์˜ฌ ๊ฒฝ์šฐ !๋กœ ๋Œ€์ฒด
print(len(word))

- ์•„์ด๋””์–ด

1) ํฌ๋กœ์•„ํ‹ฐ์•„ ๋ฌธ์ž๋“ค ๋ฆฌ์ŠคํŠธ๋กœ ์ง€์ •

2) ํฌ๋กœ์•„ํ‹ฐ์•„์— ์žˆ๋Š” ๋ฌธ์ž i ์— ํ• ๋‹น 

3) ์ž…๋ ฅ๋ฐ›์€ ๋‹จ์–ด์— i๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ !๋กœ ๋Œ€์ฒด

4) ๋‹จ์–ด ๊ธธ์ด ์ถœ๋ ฅ

 

โœ”๏ธ ๋‹จ์–ด ๋Œ€์ฒด : word.replace(๊ธฐ์กด ๋ฌธ์ž, ๋ฐ”๊พธ๊ณ ์‹ถ์€ ๋ฌธ์ž)

 

 

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

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

๋‹จ์–ด N๊ฐœ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ๊ทธ๋ฃน ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

#๊ทธ๋ฃน ๋‹จ์–ด : ๊ฐ ๋ฌธ์ž ์—ฐ์†ํ•˜๋Š” ๊ฒฝ์šฐ
#aabbccb : ๊ทธ๋ฃน๋‹จ์–ด ์•„๋‹˜. b๊ฐ€ ์—ฐ์†ํ•˜์ง€ ์•Š๊ณ  ๋–จ์–ด์ ธ ๋‚˜๊ฐ€์žˆ๊ธฐ ๋•Œ๋ฌธ
#๊ทธ๋ฃน ๋‹จ์–ด ๊ฐœ์ˆ˜ ์ถœ๋ ฅ ํ”„๋กœ๊ทธ๋žจ

N = int(input())

for _ in range (N) :
    word = input()
    for i in range(len(word)-1): #๋งˆ์ง€๋ง‰ ์ „ ๊ธ€์ž๊นŒ์ง€
        if word[i] ==word[i+1]: #์—ฐ์†ํ•œ ๋ฌธ์ž ๊ฐ™์€ ๊ฒฝ์šฐ ํŒจ์Šค
            pass
        elif word[i] in word[i+1:] : #์ด์ „ ๋ฌธ์ž๊ฐ€ ์ƒˆ๋กœ์šด๋ฌธ์ž ์ดํ›„์— ์žˆ๋Š” ๊ฒฝ์šฐ
            N -= 1 #๊ทธ๋ฃน๋‹จ์–ด -1
            break

print(N)

- ์•„์ด๋””์–ด 

1) ์ž…๋ ฅ ๋‹จ์–ด N๊ฐœ ๋งŒํผ for๋ฌธ

2) word ์ž…๋ ฅ๋ฐ›๊ธฐ

3) word ๊ธ€์ž์—์„œ ์—ฐ์†ํ•œ ๊ธ€์ž๊ฐ€ ๋™์ผ ํ•  ๊ฒฝ์šฐ ํŒจ์Šค

4) ์—ฐ์†ํ•œ ๊ธ€์ž๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์— word[i] != word[i+1]

    word[i]๊ฐ€ word[i+1] ์ดํ›„์—๋„ ์žˆ๋Š”์ง€ ์ฒดํฌ

5) ๋งŒ์•ฝ ์žˆ๋‹ค๋ฉด ๊ทธ๋ฃน ๋‹จ์–ด๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ž…๋ ฅ๋ฐ›์€ ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜์ธ N์—์„œ -1 ํ•ด์คŒ

6) N ์ถœ๋ ฅ

 

 

# 25206 ๋„ˆ์˜ ํ‰์ ์€

Q.์น˜ํ›ˆ์ด์˜ ์ „๊ณตํ‰์ ์„ ์ถœ๋ ฅํ•œ๋‹ค.

์ •๋‹ต๊ณผ์˜ ์ ˆ๋Œ€์˜ค์ฐจ ๋˜๋Š” ์ƒ๋Œ€์˜ค์ฐจ๊ฐ€ 10−4 ์ดํ•˜์ด๋ฉด ์ •๋‹ต์œผ๋กœ ์ธ์ •ํ•œ๋‹ค.
์ „๊ณตํ‰์ ์€ ์ „๊ณต๊ณผ๋ชฉ๋ณ„ (ํ•™์  × ๊ณผ๋ชฉํ‰์ )์˜ ํ•ฉ์„ ํ•™์ ์˜ ์ดํ•ฉ์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’์ด๋‹ค.

P/F ๊ณผ๋ชฉ์˜ ๊ฒฝ์šฐ ๋“ฑ๊ธ‰์ด P๋˜๋Š” F๋กœ ํ‘œ์‹œ๋˜๋Š”๋ฐ, ๋“ฑ๊ธ‰์ด P์ธ ๊ณผ๋ชฉ์€ ๊ณ„์‚ฐ์—์„œ ์ œ์™ธํ•ด์•ผ ํ•œ๋‹ค.

#๋”•์…”๋„ˆ๋ฆฌ ์ด์šฉ
score = {"A+":4.5, "A0":4.0, "B+":3.5, "B0":3.0, "C+":2.5, "C0":2.0, "D+":1.5, "D0":1.0, "F":0}
n = m = 0

# ์ „๊ณตํ‰์  : ํ•™์ *๊ณผ๋ชฉํ‰์ ์˜ ํ•ฉ์„ ํ•™์ ์˜ ์ดํ•ฉ์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’
for i in range (20) :
    sub, sco, grade = input().split()
    if grade == "P":
        continue
    sco = float(sco)
    n += sco*score[grade] #ํ•™์ *๊ณผ๋ชฉํ‰์  ํ•ฉ
    m += sco #ํ•™์ ์˜ ํ•ฉ
print(n/m) #์ „๊ณตํ‰์ 

โœ”๏ธ ํŒŒ์ด์ฌ ๋”•์…”๋„ˆ๋ฆฌ

 : ๋”•์…”๋„ˆ๋ฆฌ = { Key1: Value1, Key555: Value555, Key9: Value9, Key22: Value22}