모의 코딩 테스트 .. 를 쳤다 ..
컨셉 : 카카오 코딩 테스트 (문자열 파싱 등)
난이도 : 실제 코딩테스트의 80~90% 정도
난이도와 컨셉은 이런느낌
3시간동안 10문제중 4문제를 해결했다
..
..
ㅜ
- 우선 시간 잡고 푸는 연습을 해서 좋았다..
그리고 한 문제 한 문제 토의하는 시간까지 !!
알찬 .. 시간이었다 ..
오늘은 비도 오고 나가기 싫어서 느적거리다가 집에서 좌식테이블에 앉아서 쳤는데 ..
다음부터는 준비 일찍 해서 약간의 긴장감 가지고 집중해서 풀어야겠다 !!
- 문제 난이도를 가리고 시험을 쳐봤다. 약간 긴장된다..
문제를 해결하고 나면 난이도가 보이는데 체감 난이도보다 훨씬 낮았다 (= 쉬운 문젠데 어렵게 보임 )
1번
3004번: 체스판 조각
상근이는 3003번에서 동혁이가 발견한 체스판을 톱으로 자르려고 한다. 상근이는 체스판을 최대 N번 자를 수 있으며, 변에 평행하게만 자를 수 있다. 또, 자를 때는 체스판의 그 변의 한쪽 끝에서
www.acmicpc.net
이산수학에 나왔던 내용이라 약간 반가웠다!
조금만 생각해보면 쉬운 연산 문제
n=int(input())
if n%2 == 0:
print((n//2+1)**2)
else :
print((n//2+1) *(n//2+2))
2번
2979번: 트럭 주차
첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장
www.acmicpc.net
구현/ 시뮬레이션 문제, 리스트로 풀었다.
a,b,c = map(int,input().split())
cnt_a,cnt_b,cnt_c = 0,0,0
time = []
for i in range(3):
arrive, leave = map(int,input().split())
for j in range(arrive,leave):
time.append(j)
time_set = set(time)
for t in time_set:
if time.count(t) == 1:
cnt_a +=1
elif time.count(t) ==2:
cnt_b +=1
elif time.count(t) == 3:
cnt_c+=1
print(cnt_a*a + cnt_b*2*b + cnt_c*3*c)
3번
2804번: 크로스워드 만들기
A의 길이를 N, B의 길이를 M이라고 했을 때, 출력은 총 M줄이고, 각 줄에는 N개 문자가 있어야 한다. 문제 설명에 나온 것 같이 두 단어가 교차된 형태로 출력되어야 한다. 나머지 글자는 '.'로 출력
www.acmicpc.net
카카오에서 좋아한다는.. 문자열 파싱 문제
A,B = map(str,input().split())
n = len(A)
m = len(B)
cross_word = [['.' for _ in range(n)] for _ in range(m)]
x,y=0,0
xy = []
#A,B에서 처음 ..
for i in range(n):
for j in range(m):
if A[i] == B[j]:
xy.append([i,j])
break
x=xy[0][0]
y=xy[0][1]
cross_word[y] = A
for i in range(m):
if cross_word[i][x] == '.' :
cross_word[i][x]=B[i]
# 마지막
for i in range(m):
print(''.join(cross_word[i]))
in, find에 대해서 공부해보아야겠다 ~~
또 마지막 줄에서 ''.join ~이라고 했어야했던걸 ' '.join이라고 해서 틀렸다..
세심하게 보아야한다 !
4번
1817번: 짐 챙기는 숌
첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책
www.acmicpc.net
기본적인 그리디 문제!
그런데 너무 헷갈려서 저렇게 주석을 마구마구 달아놓았다.
연습 많이 해야할듯 ..
n , m =map(int,input().split())
if n == 0 :
print(0)
exit()
books = list(map(int,input().split()))
weigh = 0
box = 1
for i in range(n):
# print(i+1,'번째 책을 담자. --------' ,'box개수는', box)
if weigh+books[i] > m :
weigh+=books[i]
# print('한도 초과 ! ', weigh, '무게 ! ', 'box추가 !')
box += 1
weigh = books[i]
elif weigh+books[i] == m :
weigh += books[i]
# print('상자가 꽉 찼다 ! ', weigh, '무게!')
else :
weigh += books[i]
# print('잘 담긴다 ',weigh,' 무게')
print(box)