๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

https://www.acmicpc.net/step

 

๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ

๋‹จ๊ณ„๋ณ„์€ @jh05013๋‹˜์ด ๊ด€๋ฆฌํ•˜๊ณ  ๊ณ„์‹ญ๋‹ˆ๋‹ค. ๋‹จ๊ณ„์ œ๋ชฉ์„ค๋ช…์ •๋ณด์ด ๋ฌธ์ œ๋‚ด๊ฐ€ ๋งž์€ ๋ฌธ์ œ1์ž…์ถœ๋ ฅ๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ์ž…๋ ฅ, ์ถœ๋ ฅ๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ์„ ์—ฐ์Šตํ•ด ๋ด…์‹œ๋‹ค. Hello World!142์กฐ๊ฑด๋ฌธif ๋“ฑ์˜ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ด…์‹œ๋‹ค

www.acmicpc.net

 

1๋‹จ๊ณ„: ์ž…์ถœ๋ ฅ๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ

print('\n')  # ์ค„๋ฐ”๊ฟˆ
print('\t')  # ์ˆ˜ํ‰ํƒญ
print('\\')  # \
print("\'")  # '
print('\"')  # "

 

 

print("์ด๋ด","์•ˆ๋…•", sep='\n', end='!') # sep ์ฝค๋งˆ๋งˆ๋‹ค ์ ์šฉ, end ๋งจ ๋งˆ์ง€๋ง‰ ์ ์šฉ

# ์ด๋ด
# ์•ˆ๋…•!

 

๋ฌธ์ž์—ด ํฌ๋งทํŒ…

๋ฌธ์ž์—ด ๋‚ด์— ๋ณ€์ˆ˜, ๊ฐ’, ํ‘œํ˜„์‹ ๋“ฑ์„ ์‚ฝ์ž…ํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

num = 10
name = "John"
print("๋‚˜๋Š” %d์‚ด์ด๊ณ , ๋‚ด ์ด๋ฆ„์€ %s์ž…๋‹ˆ๋‹ค." % (num, name))

map(์ ์šฉํ•  ํ•จ์ˆ˜, ์ ์šฉํ•  ์š”์†Œ๋“ค)

a = map(int, input().split()))
# input().split() ๋ฆฌํ„ด๊ฐ’: ๋ฆฌ์ŠคํŠธ

# ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„
# intํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ
# map ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด
# a์— ์ €์žฅํ•œ๋‹ค. 

print(a)

# <map object at 0x7fe322fadb20>
# ๋งต ์˜ค๋ธŒ์ ํŠธ๋ผ๊ณ  ํ”„๋ฆฐํŠธ

b = list(a)
print(b)

# ๋ฆฌ์ŠคํŠธ์— ์˜ฎ๊ฒจ์ ธ ๋น„๋กœ์†Œ ๊ฐ’๋“ค์ด ์ถœ๋ ฅ๋จ
a,b=map(int, input().split()) 
print(a,b)

# Destructring ๋Œ

 

2๋‹จ๊ณ„: if๋ฌธ

a, b = map(int, input().split()) 
if a>b : 
    print('>') 
elif a<b : 
    print('<') 
elif a==b : 
    print('==')

 

์œค๋…„๋ฌธ์ œ

a=int(input()) 
if (a%400 ==0 or (a%4==0 and a%100!=0)): 
    print('1') 
else: 
    print('0')

 

if ์กฐ๊ฑด1 and ์กฐ๊ฑด2 or ์กฐ๊ฑด3 :

h,m = map(int, input().split()) 
if h==0 and m<45: 
    print('23', 15+m) 
elif h==0 and m>=45: 
    print(h, m-45) 
elif h>0 and m<45: 
    print(h-1, 15+m) 
elif h>0 and m>=45: 
    print(h, m-45)

 

3๋‹จ๊ณ„: for๋ฌธ

for i in range(ํšŸ์ˆ˜(์ •์ˆ˜)), i=0๋ถ€ํ„ฐ ์‹œ์ž‘

 

# for i in range(๋ณ€์ˆ˜(X))

N = int(input())
for i in range(N):

 

for i in range(1, 100) ===>>> i=1~99

N=int(input())
for i in range(1,10):
n=int(input())
for i in range(1,n+1):
    a,b=map(int, input().split())
    print(a+b)

 

for ์š”์†Œ in ๋ณ€์ˆ˜or๋ฐฐ์—ด

for i in str(x): 
    a.append(int(x)) 

 

import sys - input() ์‹คํ–‰์†๋„ ๊ฐ์ถ•

import sys
input = sys.stdin.readline

// ๋ณ€์ˆ˜์— ์ €์žฅํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœํผํ‹ฐ๋‹ค.
// ...readline() ๋ฉ”์†Œ๋“œ๋ฅผ ์ €์žฅํ•˜๋‹ˆ๊นŒ ์ฃฝ์–ด๋„ ์•ˆ๋๋‹ค.

n = int(input())

 

4๋‹จ๊ณ„ while๋ฌธ

 

while True:
    a,b = map(int, input().split())
    if a==0 and b==0 :
        break
        
print(a+b)

try, except

try์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด except ๋ธ”๋Ÿญ์ด ์‹คํ–‰๋œ๋‹ค.

while True:
    try:
        a,b = map(int, input().split())
        print(a+b)
    except:
        break

 

 

26๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. 2+6 = 8์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 68์ด๋‹ค. 6+8 = 14์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 84์ด๋‹ค. 8+4 = 12์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 42์ด๋‹ค. 4+2 = 6์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 26์ด๋‹ค. ์œ„์˜ ์˜ˆ๋Š” 4๋ฒˆ๋งŒ์— ์›๋ž˜ ์ˆ˜๋กœ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ 26์˜ ์‚ฌ์ดํด์˜ ๊ธธ์ด๋Š” 4์ด๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, N์˜ ์‚ฌ์ดํด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

import sys
input = sys.stdin.readline

N = num = int(input())
count = 0
while True:
  fNumber=N//10
  uNumber=N%10
  total = fNumber + uNumber
  N = int(str(uNumber)+str(total%10)) // ๋ฌธ์ž์—ด ํ˜•๋ณ€ํ™˜ ํ›„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ๋ฌธ์ œ ์˜๋„๋Œ€๋กœ ๊ฐ€๋Šฅ
  print(N)
  count+=1
  if  num== N:
    break;

print(count)

 

ํ›„๊ธฐ:

 

10๋ณด๋‹ค ์ž‘๋‹ค๋ฉด 0์„ ๋ถ™์ด๊ณ ...

1. ๋ฌธ์žฅ์„ ์ฝ”๋“œ๋กœ 1:1๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•ด์„œ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ ธ๋‹ค.

ํ•ต์‹ฌ ์ฝ”๋“œ๋ฅผ ์น˜๋ฉด ์ž์—ฐ์Šค๋ ˆ ๋งž์ถฐ์ง€๋Š” ๊ฒƒ๋“ค์ด์˜€๋‹ค.

 

2. ๋ฌธ์ œ ๊ฐ€๋…์„ฑ์ด ์‹ฌํ•˜๊ฒŒ ๋–จ์–ด์ง„๋‹ค.

๋…ํ•ด๋ ฅ๊ณผ ์‚ฌ๊ณ ๋ ฅ์˜ ๋ฌธ์ œ์ผ ์ˆ˜ ๋„ ์žˆ๋‹ค.

์ด ๊ธฐ๊ณ„์–ด ๊ฐ™์€ ํ•œ๊ตญ์–ด๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

 

1. ํ•œ๊ตญ์–ด ๋ณด์ถฉ์„ค๋ช…์€ ์ฐธ๊ณ ๋งŒ ํ•œ๋‹ค.

2. ์˜ˆ์‹œ๋ฅผ ๋จผ์ € ๋ณด๊ณ  ํŒจํ„ด์„ ์ด๋ฏธ์ง€๋กœ ํŒŒ์•…ํ•œ๋‹ค.

ํŒŒ์•…ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ๊ณ ๋ ฅ์„ ํ†ตํ•ด ์ˆ˜์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ’€์ดํ•œ๋‹ค.

 

 

5๋‹จ๊ณ„ 1์ฐจ์› ๋ฐฐ์—ด

'{ } { } '.format

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

print('{} {}'.format(min(list), max(list)))

 

 

1) ๋ฐฐ์—ด.append('a')

2) ๋ฐฐ์—ด.index('๊ฐ’')=๊ฐ’์˜ ์ธ๋ฑ์Šค

a = []

for i in range(9):
	a.append(int(input()))

print(max(a))
print(a.index(max(a))+1)

 

1) ๋ฆฌ์ŠคํŠธ = list(str( '123456'))

๋ฌธ์ž์—ด๋กœ ๋”ฐ๋กœ๋”ฐ๋กœ ์ €์žฅํ•ด์„œ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ

2) ๋ฆฌ์ŠคํŠธ.count('a')

๋ฆฌ์ŠคํŠธ ์•ˆ์— 'a'๋ฅผ ์นด์šดํŠธ

a = int(input())
b = int(input())
c = int(input())

result = list(str(a * b * c))

for i in range(10):
  print(result.count(str(i)))

 

 

1) ์ง‘ํ•ฉ = set( )

2) ์ง‘ํ•ฉ.add( )

3) ๋ฐฐ์—ด.append( )

a=[]

for i in range(10):
    n = int(input())
    a.append(n % 42)
    
arr=set(a)

print(len(arr))
a = set()

for i in range(10):
	n = int(input())
    a.add(n % 42)
    
print(len(a))

 

 

 

for ์š”์†Œ in ๋ฐฐ์—ด

์ด๊ฒŒ ๋ผ?...

n = int(input())
list = list(map(int, input().split()))
m =max(list)

new = []

for i in list:
    new.append(i/m*100)
newAvg = sum(new)/len(new)

print(newAvg)
    

 

 

 

 

n = int(input())

for i in range(n):
    
    score = 0
    tScore = 0
    results = list(input())
    
    for result in results:
        if result =='O':
            score += 1
            tScore += score
        else:
            score = 0
    print(tScore)

            

 

 

 

 

for i in scores[1 : ]:

1๋ฒˆ ์ธ๋ฑ์Šค ๋ถ€ํ„ฐ for๋ฌธ ๋Œ๋ฆด ๋•Œ

f- string: ๋ฌธ์ž์—ด ํฌ๋งทํŒ… ๋ฐฉ๋ฒ•

f'๋ฌธ์ž์—ด {๋ณ€์ˆ˜} ๋ฌธ์ž์—ด'

s = 'coffee'
n = 5
result1 = f'์ €๋Š” {s}๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋ฃจ {n}์ž” ๋งˆ์…”์š”.'

print(result1)

print( f'{ ratio:.3f }%')

.3f: ์†Œ์ˆซ์  ์„ธ์ž๋ฆฌ ๊นŒ์ง€ ํ‘œ๊ธฐ

ratio:.3f => ratio๋ณ€์ˆ˜๋ฅผ .3f๋กœ ํ‘œ๊ธฐํ•˜๋ผ

 

c = int(input())

for i in range(c):
    
    scores = list(map(int, input().split()))
    avg = sum(scores[1:])/scores[0]
    ratio = 0
                  
    for i in scores[1:]:
        if i >avg:
            ratio += 1
    ratio = ratio/scores[0] * 100
    print(f'{ratio:.3f}%')

 

 

6๋‹จ๊ณ„: ํ•จ์ˆ˜

def solve(a):
    ans = sum(a)
    return ans

 

 

์…€ํ”„๋„˜๋ฒ„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ

def func(n):
    sum = 0
    for x in list(str(n)):
        sum = sum + int(x);
    return n+sum;

c=[]
for n in range(1,10001):
    c.append(func(n))
    
for d in range(1,10001):
    if d in c: //1-10000์—์„œ ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋Š” ํŒจ์Šคํ•ด์„œ ์—ฌ์ง‘ํ•ฉ ํšจ๊ณผ๋‚ด๊ธฐ
        pass
    else:
        print(d)
    
    

 

ํ•œ์ˆ˜ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ

n = int(input())
a = []
sum = 99

if n< 100:
    sum = n;
else:
    index = 100
    while index != n+1: 
    // 210์ด n์œผ๋กœ ๋“ค์–ด์™”์„๋•Œ, 210๋„ ๋น„๊ตํ•ด์„œ ๋„ฃ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— n+1๋กœ ๊ธฐ์ค€์œผ๋กœ ์žก์Œ
    
        for b in str(index):
            a.append(int(b))    //์ž๋ฆฟ์ˆ˜๋ฅผ ๋”ฐ๋กœ๋”ฐ๋กœ ์ €์žฅ, ๋ชจ๋“ˆ๋กœ ํก์ˆ˜ํ•˜๊ธฐ
                        
        if a[1] - a[0] == a[2] - a[1]:
            sum += 1
            
        index +=1
        a = []
print(sum)

 

 

7๋‹จ๊ณ„

ord( a) = 97 / chr( 122 ) = z

s= input()
a = []
index = 0
check = False

for i in s:
    a.append(ord(i))

for j in range(97,123):
    for k in a:
        if j == k:
            check = True;
            print(index,end=' ')
            break;
        else:
            index = index + 1
    if check != True:
        print("-1",end=' ')
    else: 
        check = False
    index = 0

 

find( ): 

1) ๋ฌธ์ž์—ด์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

2) ๋ฌธ์ž๊ฐ€ ๋ฌธ์ž์—ด ์•ˆ์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ -1์„ ์ถœ๋ ฅ

index():

1)  ๋ฌธ์ž์—ด, ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ๊ณผ ๊ฐ™์€ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ iterable ์ž๋ฃŒํ˜•์—์„œ๋„ ์ฐพ๋Š” ๋ฌธ์ž์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜

2) ๋ฌธ์ž๊ฐ€ ๋ฌธ์ž์—ด ์•ˆ์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ AttributeError๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

word = input()
alphabet = list(range(97,123))

for x in alphabet :
    print(word.find(chr(x))) 
n = int(input())

for i in range(n):
    cnt, word = input().split()
    for x in word:
        print(x*int(cnt), end='')
    print()

 

๊ฐ€์žฅ ๋งŽ์ด ์–ธ๊ธ‰๋œ ๋‹จ์–ด ์ถœ๋ ฅ

word = input().upper()
setWord = list(set(word))

cntList = []

for x in setWord :
    cnt = word.count(x)
    cntList.append(cnt)

if cntList.count(max(cntList))>1:
    print('?')
else:
    print(setWord[cntList.index(max(cntList))])

์ฃผ์˜

setWord = list(set(word))์˜ ๊ฒฐ๊ณผ

Mississipi
['P', 'M', 'S', 'I']

setํ•จ์ˆ˜๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ์ธ๋ฑ์Šค๊ฐ€ ์ €์žฅ๋˜์งˆ ์•Š์œผ๋‹ˆ, setWord[์ธ๋ฑ์Šค]๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

 

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

s = input().split(' ')
a = []

for i in s:
  if i !='':
    a.append(i)
    
print(len(a))

๋‹ค๋ฅธ ์ •๋‹ต ์ฝ”๋”ฉ์˜ˆ์‹œ๋ฅผ ๋ดค๋Š”๋ฐ ์˜ค์ ํˆฌ์„ฑ์ด๋‹ค.

๋„์–ด์“ฐ๊ธฐ ๋ฐ ๊ธฐํ˜ธ๊นŒ์ง€ ๋‹จ์–ด๋กœ ์ธ์‹ํ•œ๋‹ค. 

๊ทธ๋ƒฅ ๊ธฐ์ดˆ๋กœ ์ƒ๊ฐํ•˜๊ณ  ๋„˜์–ด๊ฐ€์ž.

 

arr [0,1,2,3,4,5,6,7,8,9]

arr[::2]
# ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ
[0,2,4,6,8]

arr[1::2] 
# index 1 ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ
[1,3,5,7,9]

arr[::-1] 
# ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ -1์นธ ๊ฐ„๊ฒฉ์œผ๋กœ ( == ์—ญ์ˆœ์œผ๋กœ)
[9,8,7,6,5,4,3,2,1,0]

arr[::-2] 
# ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ -2์นธ ๊ฐ„๊ฒฉ์œผ๋กœ ( == ์—ญ์ˆœ, ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ)
[9,7,5,3,1]

arr[3::-1] 
# index 3 ๋ถ€ํ„ฐ ๋๊นŒ์ง€ -1์นธ ๊ฐ„๊ฒฉ์œผ๋กœ ( == ์—ญ์ˆœ์œผ๋กœ)
[3,2,1,0]

arr[1:6:2] 
# index 1 ๋ถ€ํ„ฐ index 6 ๊นŒ์ง€ ๋‘ ์นธ ๊ฐ„๊ฒฉ์œผ๋กœ
[1,3,5]

 

 

๋ฒˆ์™ธ

1. ํ• ๋‹น์กฐ๊ฑด๋ฌธ

num = num /2 if num % 2 == 0 else num \* 3 + 1

 

2. reverse vs reversed

num = 1234
list(map(int, str(num)))

list(map(int, reversed((str(n)))))
# list(map(int, reversed(list(str(n)))))
  • `map(ํƒ€์ž…, ์ดํ„ฐ๋Ÿฌ๋ธ”)`์—์„œ ์ดํ„ฐ๋Ÿฌ๋ธ”์— `str`๋„ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • `array.reverse()`: ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜ X, ์›๋ณธ๋งŒ ๋ณ€ํ˜•
  • `reversed(์ดํ„ฐ๋Ÿฌ๋ธ”)`: ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜ O

 

3. ''.join(li)
def solution(n):
    li = sorted(map(int,list(str(n))),reverse=True)
    str_li = ''.join(li)
    return str_li
  • ์ˆซ์ž๋งŒ ์žˆ๋Š” Array์— `''.join(Array)` ๋ฅผ ํ•˜๋ฉด ์ˆซ์ž๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค.
  • ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์„œ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผํ•œ๋‹ค. `''.join(map(int,Array))`

 

 

๋ฐ˜์‘ํ˜•