본문 바로가기

코딩테스트

[MySQL] 특정 세대의 대장균 찾기 지난 주부터 java 코테와 SQL 쿼테를 일주일에 한 문제씩 풀기로 했다. - 문제 설명대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다.다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다. ECOLI_DATA 테이블의 구조는 다음과 같으며, ID, PARENT_ID, SIZE_OF_COLONY, DIFFERENTIATION_DATE, GENOTYPE 은 각각 대장균 개체의 ID, 부모 개체의 ID, 개체의 크기, 분화되어 나온 날짜, 개체의 형질을 나타냅니다. - 문제3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요. - 예시예를 들.. 더보기
프로그래머스 - 자바(JAVA) - 수 조작하기 2(Java) 문제 설명 정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다. "w" : 수에 1을 더한다. "s" : 수에 1을 뺀다. "d" : 수에 10을 더한다. "a" : 수에 10을 뺀다. 그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다. 주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요. 제한사항 2 ≤ numLog의 길이 ≤ 100,000 -100,000 ≤ numLog[.. 더보기
프로그래머스 - 자바(JAVA) - 수 조작하기 1(Java) 문제 설명 정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다. "w" : n이 1 커집니다. "s" : n이 1 작아집니다. "d" : n이 10 커집니다. "a" : n이 10 작아집니다. 위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요. 제한사항 -100,000 ≤ n ≤ 100,000 1 ≤ control의 길이 ≤ 100,000 control은 알파벳 소문자 "w", "a", "s", "d"로 이루어진 문자열입니다. class Solution { public int solution.. 더보기
프로그래머스 - 자바(JAVA) - 마지막 두 원소(Java) 문제 설명 정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length + 1]; int last = 0; if (num_list[num_list.length - 1] > num_list[num_list.length - 2]) { last = num_list[num_.. 더보기
프로그래머스 - 자바(JAVA) - 조건에 맞게. 수열 변환하기 1 문제 설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다. 그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000,000 1 ≤ arr의 원소의 값 ≤ 100 class Solution { public int[] solution(int[] arr) { int[] answer = new int[arr.length]; for (int i = 0; i = 50) && (arr[i] % 2 == 0)) { // 50보다 크거나 같은 짝수라면 answer[i] = arr[i] / 2; } else if ((arr[i] 더보기
프로그래머스 - 자바(JAVA) - 이어 붙인 수 정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다. 입출력 예 설명 입출력 예 #1 홀수만 이어 붙인 수는 351이고 짝수만 이어 붙인 수는 42입니다. 두 수의 합은 393입니다. 입출력 예 #2 홀수만 이어 붙인 수는 573이고 짝수만 이어 붙인 수는 8입니다. 두 수의 합은 581입니다. class Solution { public int solution(int[] num_list) { String oddS = "".. 더보기
프로그래머스 - 자바(JAVA) - 원소들의 곱과 합 문제 설명 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 입출력 예 설명 입출력 예 #1 모든 원소의 곱은 120, 합의 제곱은 225이므로 1을 return합니다. 입출력 예 #2 모든 원소의 곱은 840, 합의 제곱은 529이므로 0을 return합니다. class Solution { public int solution(int[] num_list) { int answer = 0; int sum = 0; int mul = 1; for(int i=0; i 더보기
프로그래머스 - 자바(JAVA) - 주사위 게임2 문제 설명 1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다. 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다. 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다. 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다. 세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요. 제한사항 a, b, c는 1이상 6이하의 정수입니다. 입출력 예 설명 입출력 예 #1 예제 1번에서 세 주사위 숫자가 .. 더보기