프로그래머스 아이스 아메리카노/Programmers💻

GyuriKim·2023년 1월 6일

Programmers

목록 보기
2/10
post-thumbnail

아이스 아메리카노

머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1≤ money ≤1,000,000

입출력 예시

  • 입출력 예 #1
    5,500원은 아이스 아메리카노 한 잔을 살 수 있고 잔돈은 0원입니다
  • 입출력 예 #2
    15,000원은 아이스 아메리카노 한 잔을 살 수 있고 잔돈은 4,000원입니다
moneyresult
5,500[1, 0]
15,000[2, 4000]

나의 풀이

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int money) {
    vector<int> answer;
    {
    int americano = 5500;
    int cup = money/americano;
    int change = money%americano;
    answer.push_back(cup);
    answer.push_back(change);
    }
    return answer;
}                                    

풀고나서..

  • cup과 change 변수를 만들어서, 잔과 거스름돈을 구분하고자 하였다. cup에는 money를 americano 가격으로 나눈 몫을, change에는 나머지를 입력받도록 하였다. 그렇게 나온 값을을 answer에 푸쉬했다. 이후, 다른 사람들 풀이를 보니, 그냥 변수 없이 바로 몫과 나머지를 계산한 식을 answer에 푸쉬하는 것이 더 효율적이었겠구나 싶었다.

C언어 풀이방법

  • 프로그래머스에 올라와있는 다른 사람들의 C언어 풀이방법이다. 아메리카노 가격을 나눈 나머지와 몫을 answer 배열의 인덱스값 [0] 과 [1]에 입력받도록 하였다. c++로 풀었을때와 원리는 같다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int* solution(int money) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(sizeof(int)*2);
    answer[0] = money/5500;
    answer[1] = money%5500;
    return answer;
}
profile
_〆(。。)

1개의 댓글

comment-user-thumbnail
2024년 10월 16일

또 너야 머쓱?! 그만... o((>ω< ))o

답글 달기