본문 바로가기

Coding Test/Java Coding Test219

[프로그래머스 / 자바] - 하샤드 수 하샤드 수 문제 양의 정수 x가 매개변수로 주어집니다. x가 하샤드 수라면 true를 아니라면 false를 출력하는 문제입니다. 하샤드 수는 x로 예를 들면 x의 각 자릿수의 합으로 x가 나누어지는 수를 말합니다. 테스트(이클립스) 각 자릿수의 합을 담을 변수 sum을 선언합니다. x의 각 자릿수를 구하기 위해 while문을 사용했습니다 while문 안에는 sum 변수에 x를 10으로 나눈 나머지를 담아서 더하게 했습니다. 그 밑에 x를 10으로 나눈 몫을 담도록 하였습니다. 계산해보면 첫번째 while문 결과는 sum = 2, x는 1을 담게 됩니다. 두번째 while문 결과는 sum = 3, x는 0을 담기 때문에 while문이 정지하게 됩니다. 그 값을 이용하여 x를 sum으로 나눠서 0이 되면 t.. 2024. 1. 16.
[프로그래머스 / 자바] - 정수 내림차순으로 배치하기 정수 내림차순으로 배치하기 문제 정수 n이 매개변수로 주어집니다. n의 각 자릿수를 큰 수부터 작은 수 순으로 정렬한 새로운 정수를 출력하는 문제입니다. 테스트(이클립스) Arrays.sort를 정수 n을 valueOf메서드를 이용하여 문자열로 변환하여 문자열 배열에 담습니다. 이때, 값을 하나씩 비교해야 하기 때문에 split() 메서드를 이용하여 문자를 하나씩 쪼개서 값을 담습니다. 이 값을 Arrays.sort() 메서드를 이용하여 문자열 배열에 담은 값들을 오름차순 정렬합니다. 문자열을 더해주는 StringBuilder를 사용하기 위해 객체를 생성하고 문자열 배열 0번째 인덱스부터 마지막까지 append 메서드를 이용하여 하나씩 합칩니다. 마지막으로 reverse 메서드를 이용하여 내림차순으로 변.. 2024. 1. 15.
[프로그래머스 / 자바] - 정수 제곱근 판별 정수 제곱근 판별 문제 양의 정수 n이 매개변수로 주어집니다. 제곱근이 있으면 그 제곱근에 +1을 하고 그 값을 제곱하여 출력하고 아니라면 -1을 출력하는 문제입니다. 테스트 (이클립스) Math의 sqrt 메소드는 제곱근을 구하는 메소드입니다. sqrt를 이용하여 n의 제곱근을 구하도록 하고 그 값을 x 변수에 담습니다. (sqrt는 double형을 반환하기 때문에 x를 double 타입으로 만들었습니다.) if문을 이용하여 x의 값을 1로 나눴을 때 나머지가 0이면 제곱근이 있다는 의미가 되기 때문에 (long)(x+1) * (x+1)을 하여 제곱을 하게 하고 (문제의 조건 중 n의 범위가 크기 때문에 long 타입으로 변환해줘야 합니다.) 그렇지 않다면 -1을 출력하도록 했습니다. package c.. 2024. 1. 12.
[프로그래머스 / 자바] - 문자열을 정수로 바꾸기 문자열을 정수로 바꾸기 문제 문자열 s가 매개변수로 주어집니다. 문자열 s는 (+,-)부호와 숫자로만 구성되어 있습니다. s를 정수로 변환하여 출력하는 문제입니다. 테스트 (이클립스) parseInt 메소드를 이용하면 문자열을 정수로 변환할 수 있습니다. package com.namji.codingtest.level0; public class ConvertString_to_Integer { public static void main(String[] args) { /* * 문자열 s가 매개변수로 주어집니다. * s는 (+,-)부호와 숫자로만 구성되어 있고, * s를 정수로 변환하여 출력하는 문제입니다. * "1234" > 1234 / "-1234" > 1234 */ String s = "-1234"; Sy.. 2024. 1. 11.
[프로그래머스 / 자바] - 자연수 뒤집어 배열로 만들기 자연수 뒤집어 배열로 만들기 문제 자연수 n이 매개변수로 주어집니다. n의 각 자리수를 역순으로 배열에 담아 출력하는 문제입니다. 테스트 (이클립스) n의 값을 String으로 만들고 answer의 크기를 String으로 만든 n의 크기로 지정합니다. for문을 0부터 String타입 n의 크기만큼 순회하도록 하고 answer에 n을 10으로 나눈 나머지를 담습니다. 이후 for문이 순회하는 동안 n을 10으로 나눈 몫으로 대체되도록 합니다. while문을 사용한 풀이도 있습니다. while문에서 다른 점은 for문은 answer의 원소가 담길 자리를 for문이 순회하는 값을 지정해주면 되지만 while문은 그렇지 않기 때문에 answer의 원소 자리를 지정할 값을 따로 지정해줘야 합니다. package.. 2024. 1. 10.