AI 공부 도전기

[Baekjoon] 2839번 설탕 배달 (C++, Python)

 

 

     

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

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

C++

 

방법 1 - 2020KB, 0ms, 216B

초기 시도

#include <iostream>
using namespace std;
int main() {   
	int n, a3=0, a5=0;
	cin >> n;	
	while(n){		
		if (n%5==0){
			a5 = n/5;
			break;	
		}
		a3 += 1	;
		n -= 3;		
	}
	if (n<0) cout << -1;
	else cout << a5+a3;
}

 

방법 2 - 2020KB, 0ms, 182B

 

#include <iostream>
using namespace std;
int main() {   
	int n, a3=0;
	cin >> n;	
	while(n>0 && n%5!=0){				
		a3 += 1	;
		n -= 3;		
	}
	if (n<0) cout << -1;
	else cout << a3+n/5;
}

 

 

방법 3 - 1112KB, 0ms, 184B

 

#include<stdio.h>
int main(void){
        int N, i;
        scanf("%d",&N);
        for(i=0; N>=0 && N%5; N-=3, i++);
        if(N<0) printf("-1");
        else printf("%d",i+(N/5));
}

 

방법 4 - 숏코딩

 

이해아니감~~

 

#include <iostream>
main(){int n;std::cin >> n;(n==4||n==7) ? std::cout<<"-1":std::cout<<n-2*n/5*2;}

 

 

Python

 

방법 1 - 29288KB, 60ms, 178B

 

N=int(input())
divFiv=N//5
n=N%5
while divFiv>=0:
    if n%3 ==0:
        three=n//3
        n%=3
        break
    divFiv-=1
    n+=5
print((n==0) and (divFiv+three) or -1)

 

방법 2 - 29200KB, 68ms, 96B

N=int(input())
t=0
while N>0 and N%5 != 0:
	t += 1
	N -= 3
if N<0: print(-1)
else: print(t+N//5)

 

방법 3 - 숏코딩

 

이해아니감~~

 

n=int(input())
print(-(n in[4,7])or n-2*n//5*2)

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading