백준 실버 5

안정은·2022년 10월 20일

코딩테스트

목록 보기
3/10

백준 실버 5 모음

❗15904 UCPC는 무엇의 약자일까?

https://www.acmicpc.net/problem/15904
와 이거 생각 안 나서 검색함. 사실 다음에 또 풀라고 하면 외워서 풀 듯;; 처음 제출 틀린 이유는 r을 잘못 입력함 :( 다른 사람은 어떻게 풀었나 봤는데 슬라이싱 한대서 설마 노가다?~?~?~? 이러고 다른 풀이 봄 ㅎ
참고한 풀이

s=input()
r='UCPC'
c=0
for i in r:
  if i in s:
    s=s[s.index(i)+1:]
    c+=1
if c==4:
  print('I love UCPC')
else:
  print('I hate UCPC')

1343 폴리오미노

https://www.acmicpc.net/problem/1343
다른 코드는 다음에 보자!

s = input()
s=s.replace('X','B')
s=s.replace('BBBB','AAAA')
s1 = s.replace('.',' ').split()
a=0
for i in s1:
  if len(i)%2==1:
    a=1
    break
print(s if a==0 else -1)

1789 수들의 합

https://www.acmicpc.net/problem/1789

n = int(input())
i=0
s=0
while s+i<=n:
  s+=i
  i+=1
print(i-1)

11004 K번째 수

https://www.acmicpc.net/problem/11004

a,b = map(int,input().split())
num_list = map(int,input().split())
num_list = list(num_list)
num_list.sort()
print(num_list[b-1])

❓ 9625

https://www.acmicpc.net/problem/9625
ㅋㅋ 시간초과남 해결해보겠어 가능한!

n = int(input())
s = 'A'
for j in range(n):
  res = ''
  for i in s:
    if i == 'A':
      res = res+'B'
    elif i == 'B':
      res = res+'BA'
  s = res      
print(res.count('A'),res.count('B'))

엥 dp 대체 무엇? 띠용 갈 길이 멀다!

1439 뒤집기

https://www.acmicpc.net/problem/1439

import math
l = input()
pre = ''
count = 0
for i in l:
  if pre != i:
    count+=1
  pre = i
print(math.ceil(((count-1)/2)))

리스트의 맨 처음을 불러올 때는 l[0] 인덱스를 쓰면 됨!

n = input()
k = n[0]
t = 1
for i in n:
  if k != i:
    k = i
    t = t + 1
print(t // 2)

a=input()
m=0
for i in range(len(a)-1):
    if a[i]!=a[i+1]:
        m+=1
print((m+1)//2)

1427 소트인사이드

https://www.acmicpc.net/problem/1427

s = list(input())
s.sort(reverse=True)
print(*s,sep='')
print("".join(sorted(input())[::-1]))

11866 요세푸스 문제 0

https://www.acmicpc.net/problem/11866
문제 알고리즘 분류에 큐가 있길래 리스트 써서 풀어봄. 이걸 안 봤다면 풀 수 있었을까 ㅎ 과연

a,b = map(int,input().split())
l = [i for i in range(a,0,-1)]
res = []
while len(l) > 0:
  for i in range(b-1):
    l.insert(0,l.pop())
  res.append(l.pop())

print('<',end='')
print(*res,sep=', ',end='')
print('>')

이 문제 다른 사람이 코드 짠 걸 봤는데 딱 이렇다 할 코드는 못 찾음
배운 점 써보자면

  1. 123 순서 리스트 생성 : l = list(range(1,a+1))
  2. 여러 문자열 출력 : print('<', ', '.join(res), '>', sep='')
    다른 방법도 있겠지만 그건 나중에~

2751 수 정렬하기 2

https://www.acmicpc.net/problem/2751

n = int(input())
res = []
for _ in range(n):
  num = int(input())
  res.append(num)
res.sort()
print(*res)

이렇게 프린트하는 건 아니지만, 이렇게 반복문 안에 input()을 넣으면 시간초과가 남

import sys
n = int(input())
res = []
for _ in range(n):
  res.append(int(sys.stdin.readline()))
for i in sorted(res):
  print(i)

❓ 7568

https://www.acmicpc.net/problem/7568

profile
ㅎㅇ

0개의 댓글