본문 바로가기

분류 전체보기510

프로그래머스 JAVA <정수 제곱근 판별> 정수 제곱근 판별 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예nreturn 121 144 3 -1 입출력 예 설명 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 아래와 같은 코드로 작성하면 결과값은 일치하지만, 테스트에서 시간초과로 나타납니다. class Solution { public long solution(l.. 2022. 6. 18.
프로그래머스 JAVA <콜라츠 추측> 콜라츠 추측 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. 제.. 2022. 6. 17.
프로그래머스 JAVA <자연수 뒤집어 배열로 만들기> 자연수 뒤집어 배열로 만들기 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예nreturn 12345 [5,4,3,2,1] 주어진 매개변수 타입을 잘 확인해야 합니다. long 타입이기 때문에 answer 배열에 값을 넣어줄때 형변환이 꼭 필요합니다. 안하면 1 ,4 10? 에서 테스트 에러가 발생합니다. class Solution { public int[] solution(long n) { int[] answer = {}; String s = ""+n; answer = new int[s.length()]; int idx = 0; .. 2022. 6. 17.
백준 JAVA 10872 팩토리얼 재귀 - 팩토리얼 가장 기초적인 문제입니다. 팩토리얼을 구현할 때 가장 중요한 건 자기 자신을 호출하는 함수이기 때문에, 종료되는 시점이 필요하다는 것입니다. 팩토리얼의 예시로 5! 일 때 5 * 4* 3 * 2* 1 이므로, 1이되면 종료되게 구현해야합니다. 따라서 매개변수를 n 이라고 했을 때, n 이 1이되면 return 1 을 통해 종료되게 구현했습니다. package BAEKJOON; import java.util.Scanner; public class NO10872 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(Factoria.. 2022. 6. 17.
백준 JAVA 4892 숫자 맞추기 게임 n 이 짝수일 때 / 홀수일 때를 구분지어 연산을 해야하는 문제입니다. 출력값이 1. 2. ..을 출력해야해서 count 변수를 만들어주었습니다. 또한, n 값이 0 이 될경우에 break 문으로 반복문을 빠져나갈 수 있도록 했습니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = 1; while(true) { int n = sc.nextInt(); if(n == 0) break; if(n % 2 == 0) { n = (((n * 3) / 2) * 3) / 9; System.out.println(count + .. 2022. 6. 17.
백준 JAVA 4101 크냐? 예제와 출력을 이해를 못하고 풀어서 실패한 문제입니다. 입력을 받고 No / Yes 출력받으면 되는 문제인 줄 알았는데 반복문을 통해서 0 0 을 입력할 때까지 값을 계속 입력받아야하는 문제였습니다. while 문을 통해서 입력을 계속받다가 0 0 을 입력받게되면 break; 를 통해서 while을 빠져나와줍니다. if else 를 통해서 yes / no 를 출력받습니다. package BAEKJOON; import java.util.Scanner; public class NO4101 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { int a = sc.nextInt(); int b =.. 2022. 6. 17.
백준 JAVA 2752 세수정렬 입력받은 3개의 수를 오름차순으로 정렬하는 문제입니다. 길이가 3인 배열을 만들어 입력받은 후, Arrays.sort를 이용해 오름차순으로 정렬하고 for each 문을 통해서 문자열로 다시 출력했습니다. package BAEKJOON; import java.util.Arrays; import java.util.Scanner; public class NO2752 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] arr = new int [3]; for(int i =0; i 2022. 6. 17.
백준 JAVA 1550 16진수 문자열s 를 입력받아, Integer.parseInt() 를 이용해서 ( ) 진수를 10진수로 변경하는 문제이다. 답안의 Integer.parseInt(s,16); 의 의미는 문자열로 입력받은 s인 16진수를 10진수로 변경한다는 의미이다. 예제처럼 A를 입력하면 10 이나오는데, 해당 이유는 16진수는 0~9 + A~F 로 이루어져있기 때문에, A를 입력받으면 10이 출력된다 추가 - 예시로 Integer.parseInt(s,8); 일 경우에는, 8진수인 s 를 10진수로 나타낸다는 의미이다. 8진수는 0~7 로 이루어져있다. 역순으로 15를 출력받고싶으면 17 을 입력받으면 15를 출력받을 수 있다. 1 7 = 15 (1*8^1) + (7*1) package BAEKJOON; import java.u.. 2022. 6. 17.
No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 에러 JPA 테스트 코드 작성 및 실행 중 No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 해당 에러가 발생했다. 대충 뜻은 persist call 을 진행할 수 없다는 뜻인데, 옆에 에러코드를 보면 현재 스레드에 실제 트랜잭션을 사용할 수 있는 EntityManager가 없음 - '지속' 호출을 안정적으로 처리할 수 없음 이런 뜻이다. JPA는 기본적으로 트랜잭션을 기반으로 작동하게 되어있다. 트랜잭션에 따라서 1차캐시영역에 있는 데이터들이 flush되어 영속화가 되기 때문이다 따라서 클래스나 서비스 메서드에 꼭 @Transactional 을 추가해주자! 2022. 6. 16.