BOJ 30204번. 병영외 급식 Bronze ||
시간 제한 1초 / 메모리 제한 1024 MB
병영외 급식을 위해 시킨 피자가 곧 도착한다! 그러나 피자 한 판의 양이 꽤 많으므로, 명 단위로 묶을 예정이다.
명이 한 판씩 받을 수 있도록 미리 부대의 인원을분배의 편의를 위해 이번 병영외 급식은 하나 이상의 생활관이 합쳐진 그룹 단위로 진행된다. 각 그룹에 속한 병사의 수가 로 나누어떨어진다면 행복하게 병영외 급식을 즐길 수 있다. 단, 둘 이상의 그룹에 속하거나 어떤 그룹에도 속하지 못한 생활관이 존재해서는 안 된다.
생활관의 수, 각 생활관에 속한 병사의 수, 그리고 분배의 기준 가 주어졌을 때, 모든 병사가 행복하게 병영외 급식을 즐길 수 있는지 알아보자.
나의 코드
#include <iostream>
using namespace std;
int main(){
int N,X,T=0;
cin >> N >> X;
while(N--){
int a;
cin >> a;
T+=a;
}
cout << !bool(T%X);
return 0;
}
이 문제는 N개의 숫자를 모두 더해서 X로 나누었을 때 나머지가 있는지에 대한 문제다. 그래서 T변수에 입력을 모두 더해주고 bool형으로 바꾼 후에 NOT을 써주면 답이 나온다.
BOJ 30205번. 전역 임무 Silver ||
시간 제한 1초 / 메모리 제한 1024 MB
김 병장이 소속된 특수부대는 전역을 하려면 특이하게 대대장으로부터 주어진 임무를 달성해야 한다. 김 병장이 받은 임무는 적군의 1번 기지부터 번 기지까지 모두 순서대로 격파하는 것이다. 각 기지는 층으로 이루어져 있고, 기지에 입장하면 1 층부터 층까지 순서대로 한 층씩 올라가야 하며, 중간에 아래층으로 내려가거나 나갈 수 없다. 만약에 무사히 층까지 도달하여 기지 내의 적군들을 모두 쓰러트렸다면, 해당 기지는 격파되었다고 한다.
적군 기지의 각 층에는 아이템과 적군 중 하나가 배치되어 있다. 김 병장이 아이템이 배치된 층에 진입하면, 즉시 김 병장의 전투력이 두 배로 늘어난다. 김 병장이 적군이 배치된 층에 진입하면, 해당 적군과 전투한다. 만약 적군의 전투력이 김 병장의 전투력 이하라면, 김 병장이 전투에서 승리하고 적군의 전투력만큼 김 병장의 전투력이 증가한다. 그렇지 않으면, 김 병장은 임무에 실패한다.
임무를 수월하게 달성하기 위해서 김 병장은 같은 기지 안에 있는 층들의 순서를 마음대로 바꿀 수 있는 마법을 배워왔다. 김 병장의 현재 전투력이 주어졌을 때, 마법을 사용해 임무를 달성할 수 있는지 알아보자.
나의 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
long long N,M,P;
cin >> N >> M >> P;
while(N--){
int t=0;
vector<int> A(M);
for (int i=0;i<M;i++){
cin >> A[i];
if (A[i]==-1){
t++;
}
}
if (t==M){
while(t--){
P*=2;
}
continue;
}
sort(A.begin(),A.end());
for (int i=t;i<M;i++){
if (A[i]<=P){
P+=A[i];
}
else if (A[i]>P && t){
while(t--){
P*=2;
if (A[i]<=P){
P+=A[i];
break;
}
}
if (A[i]>P){
cout << 0;
return 0;
}
}
else {
cout << 0;
return 0;
}
}
while(t--){
P*=2;
}
}
cout << 1;
return 0;
}
이 문제는 M개를 묶어서 정렬 후 해결이 가능한지 확인하는 문제다. 입력을 받을 때 -1인 아이템의 개수를 t변수에 저장하고 t와 M이 같다면 그러니까 모든 입력이 -1이라면 그만큼 P에 2를 곱해주고 아니라면 정렬을 하고 A[i]가 P보다 작거나 같다면 P에 A[i]를 더하고 아니지만 아이템이 있다면 *2 비교를 반복하고 아니라면 0을 출력하고 프로그램을 종료하면 되는 문제이다.
'Algorithm > Beakjoon' 카테고리의 다른 글
2024 신촌지역 대학생 프로그래밍 대회 동아리 연합 겨울 대회 (SUAPC 2024 Winter) (0) | 2024.02.19 |
---|---|
제3회 보라매컵 본선 Open Contest (0) | 2024.02.18 |
제1회 보라매컵 본선 Open Contest UPSOLVING (0) | 2024.02.16 |
solved.ac Grand Arena Party — Division 2 (1) | 2024.02.06 |
Solved.AC Grand Arena Party 회고록 (0) | 2024.02.05 |