본문 바로가기
TIL

11.28 (TIL-코딩문제)

by 오랑이귀엽다 2023. 11. 28.

1. 짝수와 홀수

문제 설명

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성

 

제한 조건

num은 int 범위의 정수. 0은 짝수

 

입출력 예

 

나의 풀이

더보기

public class Solution {
    public string solution(int num) {
        string answer = "";
        
        if(num %2==0) {
            answer = "Even";
        } else {
            answer = "Odd";
        }
        return answer;
    }
}

 

// solution 메소드는 int 타입의 num을 매개변수로 받고, 결과를 string으로 반환

 

// answer라는 빈 문자열을 초기화

 if 문을 사용해서 num이 짝수인지 아닌지를 판별

 num % 2 == 0num을 2로 나눴을 때 나머지가 0인지를 확인하는 조건

만약 나머지가 0이면, 즉, num이 2로 나누어 떨어지면 해당 숫자는 짝수로 판단

 

// num이 짝수인 경우에는 answer에 "Even"이라는 문자열을 할당

홀수인 경우에는 "Odd"를 할당

마지막에 answer 값을 반환하면서 메소드의 실행이 종료

 

많은 사람들의 풀이

더보기

public class Solution {
    public string solution(int num) {
        return (num % 2 == 0) ? "Even" : "Odd";
    }
}

 

// (num % 2 == 0) ? "Even" : "Odd"는 조건 연산자의 형태

조건문과 비슷한 역할을 하지만 한 줄로 간결하게 작성할 수 있는 연산자

 

// 이 조건이 참이라면(num이 짝수라면), ? 다음에 오는 값인 "Even"이라는 문자열이 반환

조건이 거짓이라면(num이 홀수라면), : 다음에 오는 값인 "Odd"가 반환

 

2. 평균 구하기

문제 설명

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성

 

제한사항

arr은 길이 1 이상, 100 이하인 배열

arr의 원소는 -10,000 이상 10,000 이하인 정수

 

입출력 예

 

나의 풀이

더보기

public class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        
        int sum = 0;
        foreach(int num in arr)
        {
            sum += num;
        }
        answer = (double) sum / arr.Length;
        
        return answer;
    }
}

 

// solution 메소드는 int 배열 arr을 매개변수로 받아들이고, double 타입의 값을 반환

 

// answer 변수를 0으로 초기화

배열의 모든 요소들의 합을 저장할 sum 변수도 초기화

foreach 루프를 사용해서 배열 arr 안의 각 요소들을 가져와서 sum에 더하는 과정이 진행

배열 안 모든 요소들의 합이 sum에 저장

 

// arr 배열의 길이로 나눠서 평균을 구하기

평균값은 정수로 나오지 않고 실수형 표출

sumarr.Length로 나눌 때, 명시적으로 (double)을 사용하여 형변환

정수형 나눗셈이 아니라 실수형 나눗셈이 이뤄져서 정확한 평균값이 answer에 저장

 

// 계산된 평균값인 answer가 메소드의 반환값으로 사용

 

많은 사람들의 풀이

더보기

using System.Linq;
public class Solution {
    public double solution(int[] arr) {
        return arr.Average();
    }
}

 

// using System.Linq;을 선언하여 LINQ 라이브러리의 메소드를 사용할 수 있게 설정

 

// solution 메소드는 int 배열 arr을 매개변수로 받고, double 타입의 값을 반환

arr.Average()는 LINQ의 Average() 메소드를 사용한 부분

 

// Average() 메소드는 배열의 평균을 계산

메소드는 LINQ에서 제공하는 확장 메소드로 배열의 모든 요소들의 합을 구하고

배열의 길이로 나눠서 평균값을 반환

 

// 메소드 내에서 반복문이나 수동으로 배열의 요소들을 합산하고 나누는 작업을 할 필요 없이,

LINQ의 Average() 메소드를 활용하여 한 줄로 간단하게 배열의 평균을 계산하는 효과적인 방법

 

3. 자릿수 더하기

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 완성

예를들어 N = 123이면 1 + 2 + 3 = 6을 return

 

제한사항

N의 범위 : 100,000,000 이하의 자연수

 

입출력 예

 

나의 풀이

더보기

using System;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        
        string numStr = n. ToString();
        foreach (char digit in numStr)
        {
            answer += digit - '0';
        }
        return answer;
    }
}

 

// 주어진 자연수 n의 각 자릿수를 합산하는 함수

// nToString() 메서드를 사용하여 문자열로 변환, 각 자릿수에 쉽게 접근하기 위함

// foreach 루프를 이용하여 문자열의 각 자릿수를 순회

'0'을 빼면 해당 문자가 나타내는 숫자 값으로 변환됨
예를 들어, '5' - '0'은 문자 '5'가 나타내는 숫자 5를 얻게 됨

 

// digit - '0'을 통해 각 자릿수의 문자를 숫자로 변환하여 합산,

'0'을 빼주면 해당 문자가 나타내는 숫자 값으로 변환

// 각 자릿수의 합을 answer 변수에 누적하고, 최종적으로 합을 반환

 

많은 사람들의 풀이

더보기

using System;

public class Solution {
    public int solution(int n) {
        int answer = 0;

        while(n>0){
            answer+=n%10;
            n=n/10;
        }
        return answer;
    }
}

 

// 정수 n을 입력으로 받아서 각 자리수의 합을 계산하는 메소드

// solution 메소드는 int n을 매개변수로 받아들이고, int 타입의 값을 반환하는데,

이 반환 값은 n의 각 자리 숫자의 합

 

// answer 변수는 초기에 0으로 설정

while 루프를 통해 n이 0보다 클 때까지 실행

루프 내부에서는 answern을 10으로 나눈 나머지를 더하고, 그 다음에 n을 10으로 나눈 몫으로 갱신

n의 각 자릿수를 하나씩 가져와서 그 값을 answer에 더해주는 과정이 진행

 

// 예를 들어, n이 1234라면, 루프는 1234 > 0, 123 > 0, 12 > 0, 1 > 0, 0 > 0 순으로 실행

각 단계에서 n의 일의 자리부터 하나씩 answer에 더해져서 최종적으로는 1 + 2 + 3 + 4 = 10이 반환

 

 

 

'TIL' 카테고리의 다른 글

11.30 (TIL-코딩문제)  (0) 2023.11.30
11.29 (TIL-Unity)  (0) 2023.11.29
11.27 (TIL-Unity)  (0) 2023.11.27
11.24 (TIL-코딩문제)  (1) 2023.11.24
11.23 (TIL)  (0) 2023.11.23