2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Lv0 C# 프로그래머스 #9 - 자릿수 더하기, 머쓱이보다 키 큰 사람, 순서쌍의 개수

2023. 8. 11. 21:22ㆍ프로그래머스 C# 코딩테스트
반응형

28. 자릿수 더하기

 

문제 설명

  • 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요

제한사항

  • 0 ≤ n ≤ 1,000,000

입출력 예시

  • 1 + 2 + 3 + 4 = 10을 return합니다.
  • 9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.

풀이

using System;
using System.Linq;

public class Solution {
    public int solution(int n) {
        // 정수 n을 문자열로 변환
        // 문자열 number의 요소를 더하는 Sum(요소 => 정수로 변환(요소를 문자열로 변환) 후 덧셈)
        // x 는 number의 요소, 즉 문자(char), char타입을 int타입으로 바꾸기 위해서는 int.Parse(x.ToString()) 방식으로 작성해야 함.
        string number = n.ToString();
        return number.Sum(x => int.Parse(x.ToString()));
    }
}

 

29. 머쓱이보다 키 큰 사람

 

문제 설명

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

제한사항

  • 1 ≤ array의 길이 ≤ 100 
  • 1 ≤ height ≤ 200 
  • 1 ≤ array의 원소 ≤ 200

입출력 예시

  • 149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다.
  • 180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다.

풀이

using System;
using System.Linq;
using System.Collections.Generic;

public class Solution {
    public int solution(int[] array, int height) {
        List<int> list = array.ToList(); // Generic 사용
        list.Add(height); // 요소 추가
        list.Sort();      // 올림차순 정렬
        list.Reverse();   // 정렬 뒤집기
        // list의 머쓱이보다 키가 큰 인덱스 까지의 개수 (머쓱이 제외)
        return list.IndexOf(height);
    }
}

 

30. 순서쌍의 개수

 

문제 설명

  • 순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요

제한사항

  • 1 ≤ n ≤ 1,000,000

입출력 예시

  • n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다.
  • n이 100 이므로 곱이 100인 순서쌍은 (1, 100), (2, 50), (4, 25), (5, 20), (10, 10), (20, 5), (25, 4), (50, 2), (100, 1) 이므로 9를 return합니다.

풀이

using System;

public class Solution {
    public int solution(int n) {
        // n % i == 0 : n의 약수
        int sum = 0;
        for(int i = 1; i < n +1; i++){
            if(n % i == 0){
                sum += 1;
            }
        }
        return sum;
    }
}

 

 

  • 정답률 높은 순부터 풀이
  • 매일 3 문항 풀이
반응형