본문 바로가기

자바

정수 제곱근 판별 https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr package sqrt; public class Sqrt { public static long solution(long n) { double answer = Math.sqrt((double)n);//제곱근반환 if((answer-Math.floor(answer))!=0) {//만약 나온 제곱근을 버림한게 원래 제곱근과 같지 않다면 .. 더보기
제일 작은 수 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr package programmers; //내가 쓴 코드 import java.util.Arrays; public class 제일작은수제거하기 { public static void main(String[] args) { int[] array = {1,4,3,2}; System.out.println(Arrays.toS.. 더보기
최대공약수, 최소공배수(유클리드호제법) https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 파이썬에도 풀어봤던 최대공약수, 최소공배수 문제인데, 유클리드의 호제법이 기억나지 않아 삽질하다가 결국 유클리드호제법을 찾아보고 풀었습니다. 기존 문제 풀이기법(1이 나올때까지 2부터 나눠서 나눠지면 그 수를 저장하는 방식)에 비해 용량이 3분의 2수준으로 줄었고 시간도 단축되서, 이 방식으로 푸는 게 맞다는 것을 깨달았습니다. .. 더보기
하샤드 수 https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 이번 문제는 한번에 풀지 못했는데, 간단한 문제였음에도 불구하고 단계를 적어보지 않고 바로 문제풀이에 들어가서 틀렸다. 간단한 문제라도 한번쯤 설계를 적어보고 개발하는 습관을 가져야겠다. 각자리의 숫자를 추출하려면 각 자리 단위로 나눠야 하는데, 매번 10으로 나누어서 문제가 풀리지 않았다. 기억할 메소드는 Math.log10(x), .. 더보기
x만큼 간격이 있는 n개의 숫자 https://programmers.co.kr/learn/courses/30/lessons/12954 코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. programmers.co.kr 이번 문제에서 처음으로 자료형의 크기에 대한 이유로 틀린 경험을 해봤습니다. 문제에서 가장 큰 경우의 수가 int의 범위를 넘어가기에 long으로 변환해줘야 하는데, 그 점을 간과했습니다. 또한 int형에서 long으로 변환해본 적이 없어서 메소드를 알지 못해 헤맸습니다. int -> long 형변환: 1. L.. 더보기
행렬의 덧셈 https://programmers.co.kr/learn/courses/30/lessons/12950 코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr 이번 문제가 단순했음에도 헤맸던 이유는 2가지였다. 행렬의 합을 요소별로 저장하지 않고, 행별로 저장하려고 하면서 생긴 오류 이전 문제를 무식하게 풀어서 어쭙잖게 신경써서 풀어보자고 하다가 생긴 문제로 이를 분별할 수 있도록 노력해야겠다 배열의 사용법이 아직 미숙하여 테스트할 배열을 만들지 못한 점. 배열의 길이는 배열명.lengt.. 더보기
프로그래머스 핸드폰 번호가리기 https://programmers.co.kr/learn/courses/30/lessons/12948 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr 자바를 얼추 배운 만큼 프로그래머스 문제풀이를 시작했습니다. 아직도 문자열 처리에 대한 이해도가 낮은지 굉장히 무식하게 푼 것 같습니다. // 나의 풀이 class Solution { public String solution(String phone_number) { String answer = phone_number; // 입력받은 무낮열.. 더보기