항해 알고리즘 3일차

2022. 5. 16. 12:30·TechKnowledge/알고리즘

22////

자연수가 매개변수로 주어지면 의 각 자릿수 합계를 반환 N하는 함수를 작성하십시오 . 예를 들어, N = 123이면 1 + 2 + 3 = 6을 반환합니다.solutionN

 public int solution(int n) {
        int answer=0;
        String s= Integer.toString(n);
        
        for (int i=0; i< s.length(); i++){
            answer+=Integer.parseInt(s.substring(i,i+1));
        }
        return answer;
    }
}

22번 문제 

n이라는 정수형을 Integer.toString(n); 으로써 문자열로 변환시켰다

Integer.parseInt 는 문자열을 다시 숫자로 바꿔준다

.substring(x,y) 라고 하면
문자열의 x인덱스부터 y인덱스의 앞까지만 출력한다

============================================================================

25///

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

class sol_25 {
    public double solution(long n) {
        double answer = 0;
        double num = Math.sqrt(n);
        System.out.println(num);
        if (num-(int)num==0.0) {
            answer= Math.pow(num+1,2);
        }
        else{
             answer= -1;
        }
        return answer;
    }
}

25번문제

Math.sprt(n); : n의 제곱근값이 나온다// 이때 결과는 실수로 나오므로 double 타입변수를 선언해야한다

num-(int)num==0.0 을 통해 실수와 정수 판별하였다

Manthpow(x,y); : 는 x^y 값을 제공한다 결과는 실수로 나오므로 역시 double 변수 선언

============================================================================

28번 문제//양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

class sol_28 {
    public boolean solution(int x) {
        boolean answer = true;
        String s= Integer.toString(x);
        int s_num = 0;
            // 각자리의합을 선언
        for(int i=0; i<s.length();i++){
            s_num+=Integer.parseInt(s.substring(i,i+1));
        }
        //각자리의 합을구한다
        if(x%s_num==0){
            answer=true;
        }
        else {
            answer=false;
        }
       //나누어 떨어지는지 확인
        return answer;
    }
}

22번과 25번을 종합하여 풀었다.

각자리의 합을 구하는부분만 조금더 숙지를 하면될것같다

'TechKnowledge > 알고리즘' 카테고리의 다른 글

백준 2775: 부녀회장이 될테야 Java(자바) 동적계획법을 이용한 풀이  (0) 2023.01.10
최소신장트리/크루스칼 알고리즘  (0) 2023.01.04
항해 알고리즘 4일차  (0) 2022.05.17
항해 알고리즘 2일차  (0) 2022.05.14
항해 알고리즘1일차  (0) 2022.05.13
'TechKnowledge/알고리즘' 카테고리의 다른 글
  • 최소신장트리/크루스칼 알고리즘
  • 항해 알고리즘 4일차
  • 항해 알고리즘 2일차
  • 항해 알고리즘1일차
김코딩개발자
김코딩개발자
  • 김코딩개발자
    김코딩의 개발로그
    김코딩개발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • 개발이야기 (19)
        • 개발로그 (7)
        • 항해일지 (11)
      • Develop (0)
      • Life (0)
      • Stack (29)
        • C++ (6)
        • Ext.js (1)
        • Spring (18)
        • Java (2)
        • JavaScript (2)
      • TechTrend (0)
      • TechKnowledge (20)
        • CS관련지식 (9)
        • 알고리즘 (9)
        • 네트워크 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    직장인
    서비스 경험
    DB원리
    데이터 용량단위
    software docs
    동적계획법
    프로그래머스 LV2
    lan 통신
    osi 2계층
    자바스크립트입문
    개발 설계 문서
    올바른 괄호
    개발 문서 작성방법
    동시성제어
    서비스경험
    SpringBoot DB
    ip통신
    프로그래머스
    시간복잡도
    괄호문제
    네트워크
    지연수치표
    응답지연값
    개발일기
    관점지향프로그래밍
    개발입문
    데이터 마이그레이션
    프로그래머스 멀리뛰기
    괄호 회전하기
    대규모 트래픽
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
김코딩개발자
항해 알고리즘 3일차
상단으로

티스토리툴바