본문 바로가기

코딩 테스트 연습

(48)
[ 코딩 테스트 ] 정수 내림차순으로 배치하기 문제조건 정답 import java.util.Arrays;import java.util.Collections;class Solution { public long solution(long n) { long answer = 0; String[] str = Long.toString(n).split(""); Arrays.sort(str, Collections.reverseOrder()); String strNum = ""; for(String s : str) { strNum += s; } answer = Long.parseLong(strNum); return a..
[ 코딩 테스트 ] 가격이 제일 비싼 식품의 정보 출력하기 문제조건정답SELECT * FROM FOOD_PRODUCTWHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);SELECT * FROM FOOD_PRODUCTORDER BY PRICE DESCLIMIT 1; 후기 SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, MAX(PRICE)FROM FOOD_PRODUCT; 그냥 이렇게 하면 PRICE 만 최대값이 출력되고 나머지는 첫번째 열 값이 나오게 된다 ㅋㅋSELECT * FROM FOOD_PRODUCT WHERE PRICE = MAX(PRICE); 그렇다고 이렇게 작성하면 group 오류가 뜬다 사실 제일 간편하게 할 수 있는 건 아래쪽 코드인PRICE 를 내림차순해서 ..
[ 코딩 테스트 ] 흉부외과 또는 일반외과 의사 목록 출력하기 문제조건 정답SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')FROM DOCTORWHERE MCDP_CD = "CS" OR MCDP_CD = "GS"ORDER BY HIRE_YMD DESC, DR_NAME;  후기  진료과가 흉부외과(CS)이거나 일반외과(GS)인=> WHERE MCDP_CD = "CS" OR MCDP_CD = "GS" 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬=> ORDER BY HIRE_YMD DESC, DR_NAME 날짜 포맷은 예시와 동일하게=> DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')
[ 코딩 테스트 ] DATETIME에서 DATE로 형 변환 문제조건 정답SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') as "날짜"FROM ANIMAL_INSORDER BY ANIMAL_ID;  후기 DATETIME 컬럼의 데이터를 시각을 제외한 날짜만 출력하게 해주면 된다DATE_FORMAT 이라는 함수를 사용해서 포맷시켜주면 된다 시각(시-분-초)을 제외한 날짜(년-월-일)만=> DATE_FORMAT(DATETIME, '%Y-%m-%d')
[ 코딩 테스트 ] 정수 제곱근 판별 문제조건정답public class Solution { public long solution(long n) { long answer = 0; for (long i=1; i * i   후기 풀고 나서 다른 방법있나 찾아보니까 Math 클래스의 sqrt(), pow() 메서드가 있었다 sqrt( ) 는 제곱근을 구할 수 있다제곱근을 구하고 싶은 수를 넣으면 되고 pow(n, x) 는 제곱을 구할 수 있다n 은 제곱근을 구하고 싶은 수를 넣고 x에는 몇번 제곱할 건지 넣으면 된다 이 메서드를 사용하면 코드가 훨씬 간단해질 것 같다
[ 코딩테스트 ] 문자열을 정수로 바꾸기 문제조건 정답class Solution { public int solution(String s) { int answer = 0; answer = Integer.parseInt(s); return answer; }}​  후기 참조형  Integer 클래스 기능 중 paresInt 라는 int로 바꿔주는 메서드 사용하기
[ 코딩 테스트 ] 자연수 뒤집어 배열로 만들기 문제조건 정답class Solution { public int[] solution(long n) { String str = n + ""; int[] answer = new int[str.length()]; int count = 0; while (n > 0) { answer[count] = (int)(n%10); n /= 10; count++; } return answer; }}class Solution { public int[] solution(long n) { int length = Long.toString(n).length(); ..
[ 코딩 테스트 ] x만큼 간격이 있는 n의 숫자 문제조건 정답class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for (int i=0; i   후기 long 타입 answer 배열을 새로 생성해주고 길이는 n 값으로 지정해줬다그리고 배열 길이만큼 for 문을 돌려서배열의 index 에는 i 를 넣어주고 x 값과 i + 1 한 값을 곱해서 배열에 넣어주기 i + 1 을 한 이유는 for 문을 돌릴 때 index 번호를 위해 0부터 돌려서x가 만약 2일 경우, 2 X 0 이 되므로 배열 값 첫번째에 0이 들어가기 때문에 + 1을 해줘야 한다 x 값을 int로 받아오고 리턴 타입은 long 이기 때문에강제형변환 꼭 해주기