알고리즘 0레벨 풀이 - 3/18

송현진·2023년 3월 18일
0

알고리즘

목록 보기
6/50
  • 자릿수 더하기

    • 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return해라
    class Solution {
        public int solution(int n) {
            int answer = 0;
            while(n>0){
                answer += n%10;
                n/=10;
            }
            return answer;
        }
    }
  • 순서쌍의 개수(상)

    • 순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return해라
    class Solution {
        public int solution(int n) {
            int answer = 0;
            for(int i=1; i<=n; i++){
                if(n%i==0){
                    answer++;
                }
            }
            return answer;
        }
    }
  • 개미군단(상)

    • 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 4마리와 병정개미 1마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return해라
    class Solution {
        public int solution(int hp) {
            int answer = 0;
            answer = hp/5+(hp%5)/3+(hp%5)%3;
            return answer;
        }
    }
  • 숨어있는 숫자의 덧셈(상)

    • 문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return해라
    class Solution {
        public int solution(String my_string) {
            int answer = 0;
            String nums = my_string.replaceAll("[^0-9]","");
    
            char[] num = nums.toCharArray();
            for(int i=0; i<num.length; i++){
                answer += num[i]-'0';
            }
            return answer;
        }
    }
  • 문자열 정렬하기(1)

    • 문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return해라

      import java.util.Arrays;
      
      class Solution {
          public int[] solution(String my_string) {
              String nums = my_string.replaceAll("[^0-9]","");
              int[] answer = new int[nums.length()];
      
              for(int i=0; i<nums.length(); i++){
                  answer[i] = nums.charAt(i) - '0';
              }
              Arrays.sort(answer);
      
              return answer;
          }
      }

      💦 개인적으로 문자열에 관한 문제들이 어려웠던 거 같다. 문자열 정렬하기에서 나는 이렇게 풀었지만 다른 사람의 풀이를 보니 아래 코드처럼 간단하게 풀 수 있었다. 여러 클래스의 문법들에 대한 중요성과 공부해야할 필요성을 또 한 번 느꼈다. 코드는 짤 수만 있으면 되지만 더 간결하고 빠르게 작성하고 싶은 욕심이 생긴다.

      return Arrays.stream(myString.replaceAll("[A-Z|a-z]", "")
                 .split(""))
                 .sorted()
                 .mapToInt(Integer::parseInt).toArray();
profile
개발자가 되고 싶은 취준생

0개의 댓글