-문제: https://www.acmicpc.net/problem/3109

 

3109번: 빵집

유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던

www.acmicpc.net

 

맞왜틀이었다. 왜 틀린 건지 생각을 해봐야할 것 같다

 

-정답풀이:


-틀린 풀이:

-문제: https://www.acmicpc.net/problem/1700

 

1700번: 멀티탭 스케줄링

기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전

www.acmicpc.net

 

 

-정답풀이: 

 

-풀이 이해: 

1. 멀티탭이 비어있는지, 혹시 꽅으려고 하는 플러그가 있는지 확인

2. 플러그에 안 꽂혀져 있으면 해당 플러그를 꽂고 continue

 

3. 꽂혀져 있다면 플러그 하나를 뽑아야 한다

4. 다시 사용되지 않는 플러그를 우선적으로 뽑고(사용횟수가 가장 많은 것을 되도록이면 코드에서 빼지 않는 방향)

 

5. 꽂혀있는 플러그 중에서 가장 나중에 사용되는 플러그를 뽑는다 

-문제:https://www.acmicpc.net/problem/2720

 

-정답풀이:

이전에 풀었던 동전문제라 어렵지 않게 풀 수 있었다 

coin=[25,10,5,1]
n=int(input())
for _ in range(n):
    y=int(input())
    for i in coin:
        print(y//i, end=' ')
        y=y%i

 

-7월 8일 풀이: 

줄바꿈 없이 출력하는 방법 까먹었었다ㅋㅋ

print(~~~, end=' ') 기억하기!!

n=int(input())
data=[]
for _ in range(n):
    data.append(int(input()))
coins=[25,10,5,1]
for i in range(n):
    answer=[]
    for j in coins:
        answer.append(data[i]//j)
        data[i]=data[i]%j
    for i in range(len(answer)):
        print(answer[i],end=' ')

-문제: https://www.acmicpc.net/problem/2847

 

2847번: 게임을 만든 동준이

학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어

www.acmicpc.net

풀이 안보고 스스로 푼 문제(이게 얼마만인지)

 

예제2를 보고 i번째 인덱스의 값이 i+1번째 인덱스의 값보다 큰 경우만 계산하면 될 것 같다고 생각했다. 

그래서 if s[i]>s[i+1] 를 생각했고

s[i]는 s[i+1]보다 1만큼 작으면 된다

s[i]를 s[i+1]-1로 만들 때 감소한 만큼을 cnt에 저장한다 

 

-풀이:

 

그런데 위 코드가 예제1번에서는 적용되지 않았다. 

이유를 찾아보니 해당 풀이로 하면 [5,5,5]는 [4,4,5]가 되고 cnt는 2가 되어 정답이 아니다.

그래서 다른 방법을 생각해 보니 인덱스를 n-1부터 시작하면 어떨까 생각했다. 그러면 배열의 값이 모두 같아도 순차대로 나열할 수 있을 것이라 생각이 들었다. 그래서 다음과 같이 작성하고 코드 돌리니 정답이었다. 

 

-정답풀이: 

n=int(input())
s=[]
cnt=0
for _ in range(n):
    s.append(int(input()))  
for i in range(n-1,0,-1):
    if s[i] <= s[i-1]:
        cnt+=(s[i-1]-s[i])+1
        s[i-1]=s[i]-1
            
print(cnt)

+ Recent posts