반응형
문제는 다음과 같습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/132267?language=cpp
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 코드는 다음과 같습니다.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int solution(int a, int b, int n) {
int answer = 0;
while(n>=a)
{
int temp=n%a;
n=floor(n/a+0.5)*b;
answer+=n;
n+=temp;
}
return answer;
}
순서도를 간단하게 정리하면
1. 빈병의 개수, 받기위한 개수의 나머지를 구하고
2. 빈병을 주고 마트에서 주는 수를 계산하고
3. 이 과정을 반복한다.
C++에 반올림 하는 방법은 내림함수인 floor()를 통해 할 수 있습니다.
floor는 무조건 내리기 때문에 먼저 0.5를 더하면 소수점 뒤의 수가 5 이상이면 일의 자리가 달라지고 4이하이면 달라지지 않기 때문에 반올림을 할 수 있습니다.
그 외 구현은 순서를 생각해서 구현하면 풀 수 있는 문제라고 생각합니다.
반응형
'프로그래머스 Lv.1 코딩테스트' 카테고리의 다른 글
[프로그래머스 Lv.1] 카드 뭉치 (0) | 2023.02.17 |
---|---|
[프로그래머스 Lv.1] 명예의 전당 (1) (0) | 2022.11.29 |
[프로그래머스 Lv.1] 문자열 내 마음대로 정렬하기 (0) | 2022.10.28 |
[프로그래머스 Lv.1] 3진법 뒤집기 (0) | 2022.10.07 |
[프로그래머스 Lv.1] 가운데 글자 가져오기 (0) | 2022.10.07 |