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 == 0은 num을 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 배열의 길이로 나눠서 평균을 구하기
평균값은 정수로 나오지 않고 실수형 표출
sum을 arr.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의 각 자릿수를 합산하는 함수
// n을 ToString() 메서드를 사용하여 문자열로 변환, 각 자릿수에 쉽게 접근하기 위함
// 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보다 클 때까지 실행
루프 내부에서는 answer에 n을 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 |