[Programmers/Level 2] 롤케이크 자르기(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다.예를 들어, 롤케이크에 4가지 종류의 토핑이 올려져 있다고 합시다. 토핑들을 ..
[Programmers/Level 2] 이진 변환 반복하기(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.x의 모든 0을 제거합니다.x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다.0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각..
[Programmers/Level 2] 가장 큰 수(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한사항numbers의 길이는 1 이상 100,..
[Programmers/Level 2] 전화번호 목록(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요..
[Programmers/Level 2] 튜플(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다.(a1, a2, a3, ..., an)튜플은 다음과 같은 성질을 가지고 있습니다.중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2)원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2)튜플의 원소 개수는 유한합니다.원소의..
[Programmers/Level 1] K번째수(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.2에서 나온 배열의 3번째 숫자는 5입니다.배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 ..
[Programmers/Level 1] 정수 내림차순으로 배치하기(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한사항n은 1이상 8000000000 이하인 자연수입니다. 예제 입력 1118372예제 출력 1873211 알고리즘 분류정렬 풀이주어진 Long 타입의 정수를 문자열로 바꾼다.오름차순으로 정렬하고 문자열을 뒤집는다.문자열을 다시 Long 타입의 정수로 타입 캐스팅을 한다. 코드더보기import java.u..
[Programmers/Level 1] 문자열 내 마음대로 정렬하기(Java)
·
Programmers/Level 1~2
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.  제한사항strings는 길이 1 이상, 50이하인 배열입니다.strings의 원소는 소문자 알파벳으로 이루어져 있습니다.strings의 원소는 길이 1 이상, 100이하인 문자열입니다.모든 stri..
[Programmers/Level 1~2] IS NULL(MySQL)
·
Programmers/Level 1~2
Level 1 경기도에 위치한 식품창고 목록 출력하기 IFNULL을 사용하여 냉동시설 여부가 없다면 'N'으로 출력하도록 하고, 주소가 경기도로 시작하는 식품창고만을 찾도록 한다. SELECT A.WAREHOUSE_ID, A.WAREHOUSE_NAME, A.ADDRESS, IFNULL(A.FREEZER_YN, 'N') AS FREEZER_YN FROM FOOD_WAREHOUSE A WHERE A.ADDRESS LIKE '경기도%' ORDER BY A.WAREHOUSE_ID ASC 이름이 없는 동물의 아이디 SELECT A.ANIMAL_ID FROM ANIMAL_INS A WHERE A.NAME IS NULL ORDER BY A.ANIMAL_ID ASC 이름이 있는 동물의 아이디 SELECT A.ANIMA..
[Programmers/Level 2] JOIN(MySQL)
·
Programmers/Level 1~2
Level 2 조건에 맞는 도서와 저자 리스트 출력하기 BOOK 테이블과 AUTHOR 테이블을 저자의 아이디를 기준으로 묶는다. SELECT A.BOOK_ID, B.AUTHOR_NAME, DATE_FORMAT(A.PUBLISHED_DATE, '%Y-%m-%d') AS 'PUBLISHED_DATE' FROM BOOK A INNER JOIN AUTHOR B ON A.AUTHOR_ID = B.AUTHOR_ID WHERE A.CATEGORY = '경제' ORDER BY A.PUBLISHED_DATE ASC 상품 별 오프라인 매출 구하기 PRODUCT 테이블과 OFFLINE_SALE 테이블을 상품 아이디를 기준으로 묶는다. 그리고 상품 코드로 상품들을 구분하고 상품 코드별 판매량의 총합과 상품의 가격을 곱한 값을..
[Programmers/Level 2] GROUP BY(MySQL)
·
Programmers/Level 1~2
Level 2 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 GROUP BY로 자동차를 종류별로 구분한다. 옵션이 쉼표로 구분되어 있는 문자열이기 때문에 '%옵션 정보%'를 통하여 통풍시트, 열선시트, 가죽시트를 옵션으로 포함하는 자동차만 따진다. SELECT A.CAR_TYPE, COUNT(A.CAR_TYPE) AS CARS FROM CAR_RENTAL_COMPANY_CAR A WHERE (A.OPTIONS LIKE '%통풍시트%') OR (A.OPTIONS LIKE '%열선시트%') OR (A.OPTIONS LIKE '%가죽시트%') GROUP BY A.CAR_TYPE ORDER BY A.CAR_TYPE ASC 진료과별 총 예약 횟수 출력하기 진료과 코드별로 예약 건수를 구분한다. 예약 날짜에..
[Programmers/Level 1~2] SUM, MAX, MIN(MySQL)
·
Programmers/Level 1~2
Level 1 가장 비싼 상품 구하기 SELECT MAX(A.PRICE) AS MAX_PRICE FROM PRODUCT A 최댓값 구하기 SELECT MAX(A.DATETIME) AS DATETIME FROM ANIMAL_INS A Level 2 가격이 제일 비싼 상품의 정보 출력하기 SELECT A.PRODUCT_ID, A.PRODUCT_NAME, A.PRODUCT_CD, A.CATEGORY, A.PRICE FROM FOOD_PRODUCT A ORDER BY A.PRICE DESC LIMIT 1 최솟값 구하기 SELECT MIN(A.DATETIME) AS DATETIME FROM ANIMAL_INS A 동물 수 구하기 SELECT COUNT(*) FROM ANIMAL_INS 중복 제거하기 이름의 중복을..
[Programmers/Level 1~2] SELECT(MySQL)
·
Programmers/Level 1~2
Level 1 과일로 만든 아이스크림 고르기 아이스크림의 총 주문량은 FIRST_HALF 테이블에 있고, 아이스크림의 주 성분은 ICECREAM_INFO 테이블에 있으므로 INNER JOIN을 통해 각 테이블의 FLAVOR 정보가 같은 것들만 묶어준다. 총 주문량이 3000을 넘어가고 주 성분이 과일인 아이스크림을 찾아야 하므로 WHERE을 통해 조건식을 세워준다. 마지막으로 총 주문량을 내림차순으로 정렬하고 조건을 만족하는 모든 아이스크림의 맛을 출력해준다. SELECT A.FLAVOR FROM FIRST_HALF A INNER JOIN ICECREAM_INFO B ON (A.FLAVOR = B.FLAVOR) WHERE (A.TOTAL_ORDER > 3000) AND (B.INGREDIENT_TYPE ..