Programmers #1

이강용·2023년 1월 11일
0

Programmers

목록 보기
1/58
post-thumbnail

두 수의 나눗셈

문1) 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

입력 : 3 2
출력 : 1500

class Solution {
    public int solution(int num1, int num2) {
        int answer = 0;
        double casting = 0;
        casting = (double)num1/(double)num2 ;
        
        answer = (int)(casting*1000);
        return answer;
    }
}

코드 리뷰 :
int형 매개변수 2개를 받아, num1/num2으로 나누기를 하면 소수점이 없어진다.
따라서, num1,num2에 캐스팅을 해주어 데이터 소실을 방지한다.
캐스팅된 값에 *1000을 하고, 인트형으로 캐스팅을 하여 answer을 리턴한다.


배열의 평균값

문2) 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

입력 : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ,[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

출력: 5.5 , 94.0

class Solution {
    public double solution(int[] numbers) {
        double sum = 0;
        double answer = 0;
        for(int i = 0; i<numbers.length; i++){
            sum += numbers[i];
        }
        answer = sum/numbers.length;
        
        
        return answer;
    }
}

코드 리뷰 :
저장된 배열 값을 더한뒤 캐스팅하여 실수형으로 변환시켜 값을 리턴한다.


짝수의 합

문3) 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

입력 : 10
출력 : 30

class Solution {
    public int solution(int n) {
        
        int answer = 0;
        for(int i = 1; i<n+1; i++){
            if(i % 2 == 0){
                answer += i;
            } 
        }
        return answer;
    }
}

양꼬치

문4) 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.

입력 : n = 10, k = 3
출력 : 124,000

class Solution {
    public int solution(int n, int k) {
        
        int y = 0;
        int b = 0;
        int answer = 0;
        
        y = n * 12000;
        b = k * 2000;
        
        if(n / 10 > 0 ) {
            n /= 10;
            answer = y + b - (n*2000);
        }else{
            answer = y+b;
        }  
        return answer;
    }
}

코드 리뷰 :

양꼬치의 총 가격은 양꼬치 먹은 갯수 개당 가격 , 음료 역시 갯수 개당 가격으로 표현할 수 있다. 이때, 양꼬치 먹은 갯수가 10개 이상이면 10개당 음료 1개 가격을 할인해준다.
나는 if문을 써서 n/10 의 몫이 >0 크면 할인이 포함된 가격, 아니면 정가로 계산하게 끔
프로그램을 구성하였다.

정답은 맞지만 불필요한 계산 식이 많은거 같다라는 생각이 든다..

another idea
return n 12000 + k 2000 - (n / 10 * 2000);


머쓱이보다 키 큰 사람

문5) 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

입력 : [149, 180, 192, 170] / 167
출력 : 3

class Solution {
    public int solution(int[] array, int height) {
        //int[] array = {149,180,192,170};
        int cnt = 0;
        for(int i = 0; i<array.length; i++){
        if(height < array[i]){
            cnt++;
        }
        }
        return cnt;
    }
}

코드 리뷰 :

매개변수로 배열이 주어지는데, for문을 통해 배열 인덱스(0~ array.length)까지
비교하여 키 큰 수를 카운트 하는 방법으로 프로그램을 구성하였다.
여기서 for문은 향상된 for문으로 구성도 가능한거 같다.

for(int num :array){
if(num > height){
cnt++;
}
}

중복된 숫자 개수

문6) 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

입력 : [1, 1, 2, 3, 4, 5] , 1
출력 : 2

class Solution {
    public int solution(int[] array, int n) {
        
        //int[] array = {1,1,2,3,4,5};
        int cnt = 0;
       
        for(int i = 0; i<array.length; i++){
            if(n == array[i]){
                cnt++;
            }  
        }
        return cnt;
    }
}

배열 뒤집기

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

num_listresult
[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[] reverse = new int[num_list.length];
        
        for(int i = 0; i<num_list.length;i++){ 
           
            reverse[i] = num_list[num_list.length -1 - i] ;  
        }
            
        return reverse;
    }
}

배열 두배 만들기

문8) 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

numbersresult
[1,2,3,4,5][2,4,6,8,10]
[1, 2, 100, -99, 1, 2, 3][2, 4, 200, -198, 2, 4, 6]
class Solution {
    public int[] solution(int[] numbers) {
        
        int[] multi = new int[numbers.length];
       
        for(int i = 0; i<numbers.length; i++){
            
            numbers[i] *= 2;
        }
        return numbers ;
    }
}

배열 원소의 길이

문9) 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.

numbersresult
["We", "are", "the", "world!"][2, 3, 3, 6]
["I", "Love", "Programmers."][1, 4, 12]
class Solution {
    public int[] solution(String[] strlist) {
        
        int[] strNum = new int[strlist.length];
        
        for(int i = 0 ; i<strlist.length; i++){
            
            strNum[i] = strlist[i].length();
        }
        return strNum ;
    }
}

코드 리뷰 :
String 자료형 매개변수를 받아와 0 ~.length 크기만큼 반복시행하여 인덱스(0~끝번호)까지 인덱스에 저장된 문자의 길이를 새로운 int형[] 배열 strNum에 저장하여 return하게 프로그램 작성

profile
HW + SW = 1

0개의 댓글