ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [올리브씨의 알고리즘 입문] Day 5 - 수학, 배열
    알고리즘/프로그래머스_입문 2024. 3. 29. 01:46

    017. 옷가게 할인 받기

    문제 설명.

      머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
    구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.

     

    제한 사항.

      10 ≤ price ≤ 1,000,000

      ↘ price는 10원 단위로(1의 자리가 0) 주어집니다.
      소수점 이하를 버린 정수를 return합니다.

     

    입출력 예.

    price result
    150,000 142,500
    580,000 464,000

    풀이.

    import java.lang.*;
    class Solution {
        public int solution(int price) {
        
            //1의 자리 버리기 위해
            double a = Math.floor(price/10)/100;
            //구매금액별 할인구간
            double b = a>=500? a*800:(a>=300? a*900:(a>=100? a*950:a*1000));
            
            return (int)Math.floor(b);
        }
    }

     

    다른 풀이.

    class Solution {
        public int solution(int price) {
            int answer = 0;
    
            if(price>=500000) return (int)(price*0.8);
            if(price>=300000) return (int)(price*0.9);
            if(price>=100000) return (int)(price*0.95);
    
            return price;
        }
    }

    018. 아이스 아메리카노

    문제 설명.

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

     

    제한 사항.

      0 < money ≤ 1,000,000

     

    입출력 예.

    money result
    5,500 [1, 0]
    15,000 [2, 4000]

    풀이.

    class Solution {
        public int[] solution(int money) {
    
            int iceA = 5500;
            int cup = 0;
            int change = 0;
            
            boolean flag = (0<money && money<=1000000);
            
            if(flag){
                cup     = money/iceA;
                change  = money%iceA;
            }
            int[] answer = {cup,change};
            return answer;
        }
    }

     

    다른 풀이.

    class Solution {
        public int[] solution(int money) {
            return new int[] { money / 5500, money % 5500 };
        }
    }

    019. 나이 출력

    문제 설명.

      머쓱이는 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 2022년 기준 선생님의 나이 age가 주어질 때, 선생님의 출생 연도를 return 하는 solution 함수를 완성해주세요

     

    제한 사항.

      0 < age ≤ 120
      나이는 태어난 연도에 1살이며 매년 1월 1일마다 1살씩 증가합니다.

     

    입출력 예.

    age result
    40 1983
    23 2000

    풀이.

    class Solution {
        public int solution(int age) {
            
            //변수
            int nowYear = 2022;
            int result = 0;
            
            //제한조건
            boolean flag = (0<age && age<=120);
            
            if(flag){
                result = nowYear-age +1;
            }
            
            return result;
        }
    }

     

    다른 풀이.

    code2

    020. 배열 뒤집기

    문제 설명.

      정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

     

    제한 사항.

      1 ≤ num_list의 길이 ≤ 1,000
      0 ≤ num_list의 원소 ≤ 1,000

     

    입출력 예.

    num_list result
    [1, 2, 3, 4, 5] [5, 4, 3, 2, 1]
    [1, 1, 1, 1, 1, 2] [2, 1, 1, 1, 1, 1]
    [1, 0, 1, 1, 1, 3, 5] [5, 3, 1, 1, 1, 0, 1]

    풀이.

    class Solution {
        public int[] solution(int[] num_list) {
            
            int length = num_list.length;
            int[] answer = new int[length];
            int j = 1;
            
            for(int i=1; i<=length ; i++){
                answer[i-1] = num_list[length-j];
                j++;
            }
            return answer;
        }
    }

     

    다른 풀이.

    import java.util.stream.LongStream;
    
    class Solution {
        public int[] solution(int[] num_list) {
            return LongStream.range(1, num_list.length + 1)
                    .mapToInt(i -> num_list[(int) (num_list.length - i)])
                    .toArray();
        }
    }
    
    /* 스트림 스터디 참고
    https://hstory0208.tistory.com/entry/Java자바-Stream스트림이란
    */

    출처 :https://school.programmers.co.kr/ 입문 알고리즘

    https://school.programmers.co.kr/learn/challenges/beginner?order=acceptance_desc&languages=java

     

Designed by Tistory.