반응형

알고리즘 문제/프로그래머스 152

프로그래머스 강원도에 위치한 생산공장 목록 출력하기 [Lv. 1] (MySQL)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krFOD_FACTORY 테이블에서 ADDRESS가 강원도가 포함된 공장의 FACTORY_ID와 FACTORY_NAME, ADRESS를 조회하세요 (ID를 기준으로 오름차순 정렬)  특정 문자열이 포함되어있는지 체크할 때에는 LIKE 연산자를 사용합니다.WHERE ADDRESS LIKE '%강원도%'  정답 코드SELECT FACTORY_ID, FACTORY_NAME, ADDRESSFROM FOOD_FACTORYWHERE ADDRESS LIKE '%강원도%'ORDER BY FACTORY_ID ASC

프로그래머스 상위 n개 레코드 [Lv. 1] (MySQL)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krANIMAL_INS 테이블에서 DATETIME이 가장 빠른 동물을 조회하세요.  하나만 조회할 때에는 LIMIT 을 사용하면 됩니다.오름차순으로 정렬 후 LIMIT을 1로 설정하고 조회하면 가장 먼저 들어온 동물이 출력됩니다. SELECT NAMEFROM ANIMAL_INSORDER BY DATETIME ASCLIMIT 1

프로그래머스 여러 기준으로 정렬하기 [Lv. 1] (MySQL)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krANIMAL_INS 테이블에서 모든 동물의 ID와 이름, 보호 시작일을 조회합니다. (이때, 이름을 기준으로 오름차순 정렬하며이름이 같다면 보호 시작일을 기준으로 내림차순 정렬합니다 ) 두개 이상의 정렬 기준을 만들 때에는 ' , '를 기준으로 옆에 정렬 조건을 추가하면 됩니다.ORDER BY NAME ASC, DATETIME DESC  정답 코드SELECT ANIMAL_ID, NAME, DATETIMEFROM ANIMAL_INSORDER BY NAME ASC, DATETIME DESC

프로그래머스 어린 동물 찾기 [Lv. 1] (MySQL)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krANIMAL_INS 테이블에서 INTAKE_CONDITION이 AGED가 아닌 동물을 찾아주세요. (ANIMAL_ID와 NAME을 조회하고 ANIMAL_ID을 기준으로 오름차순 정렬하여 출력합니다.) 'AGED'가 아닌 걸 찾는 방법은 여러가지 입니다.1. WHERE INTAKE_CONDITION != 'AGED'2. WHERE NOT INTAKE_CONDITION = 'AGED'3. WHERE INTAKE_CONDITION NOT IN ('AGED') IN 연산자는 문자열을 여러개 추가가 가능하기 때문에 상황에 ..

프로그래머스 아픈 동물 찾기 [Lv. 1] (MySQL)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krANIMAL_INS 테이블에서 INTAKE_CONDITION이 Sick인 동물을 찾아서 해당되는 동물들의 ANIMAL_ID, NAME을 조회해주세요 (ANIMAL_ID를 기준으로 오름차순 정렬) SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHERE INTAKE_CONDITION IN ('SICK')ORDER BY ANIMAL_ID ASC 조회하려는 항목을 선택합니다. ( SELECT ANIMAL_ID, NAME )참고하는 테이블을 선택 ( FROM ANIMAL_INS )조건을 추가합니다 ( ..

프로그래머스 선입 선출 스케줄링 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krCPU에는 여러개의 코어가 있습니다. 각 코어의 작업 속도를 배열로 입력받을 때, N번째 일감을 처리하는 코어의 번호를 찾아주세요. 풀이 방법이 문제는 이진 탐색으로 풀이하는 문제입니다.int start = -1;int end = 1000000;// N이 코어 수 보다 작다면 바로 출력if (n 0 && i 특정 시간동안 몇개의 작업을 처리할 수 있는지 계산하여 최종적으로 N개의 작업을 처리하기 위해 필요한 시간을 찾아줍니다. int total = cores.size();for (int i = 0; i 찾은 시간..

프로그래머스 캠핑 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr캠핑장에는 N개의 쐐기가 박혀있다 이 쐐기를 이용해서 텐트를 설치할 수 있는데, 텐트는 직사각형의 형태여야하며, 텐트의 대각에 위치하는 두 꼭지점이 정확하게 선택한 두 개의 쐐기에 위치해야 한다. 또한 텐트가 점유하는 직사각형 영역 내부에 다른 쐐기를 포함하면 안된다. 이때, 텐트를 설치할 수 있는 모든 경우의 수를 구하시오. 풀이 방법모든 쐐기의 위치를 y 오름차순으로 정렬합니다. (y가 같다면 x 오름차순이 되도록)위와 같은 상황이라면 아래처럼 정렬됩니다.[0, 0], [0, 2], [1, 1], [2, 0] ..

프로그래머스 수식 복원하기 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr당신은 고대 문명의 유물을 찾았습니다. 유물에는 여러 수식들이 적혀있습니다. 수식들 중 몇 개의 수식에 결과값이 지워져 있을 때, 이 문명이 사용하던 진법에 맞도록 지워진 결괏값을 채워주세요. (2~9진법 중 하나) 풀이 방법우선 사용 가능한 진법을 찾아야합니다. (여러개일 수 있습니다.)3진법은 0~2, 8진법은 0~7까지의 수를 사용합니다. 즉, 수식들 중 가장 큰 수를 찾고 +1을 한 진법부터 탐색하면 되겠습니다.set questions;set bases;int start = 2;for (int i = 0; ..

몸짱 트레이너 라이언의 고민 [Lv. 3]

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr헬스장에는 N * N 크기의 락커가 있고 M명의 사람이 옵니다. 헬스장 회원들에게 락커를 배정할 때 최대한 떨어지게끔 배치를 해달라고 컴플레인이 들어왔습니다. 사람들이 오는 시간과 나가는 시간을 배열로 입력 받을 때, 헬스장을 이용한 손님들 중 가장 가까웠던 손님 간의 거리는 얼마인지 구하시외. 풀이방법우선적으로 구해야 하는 것은 헬스장 오픈부터 마감까지 겹치는 인원의 수가 얼마인지입니다.오픈 시간은 600, 마감 시간은 1320이므로 1321 크기의 배열을 만든 후 timetable을 순회하여 인원의 수를 채워줬..

프로그래머스 최적의 행렬 곱셈 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr여러 개의 행렬을 곱할 때, 곱하는 순서에 따라 연산 횟수가 달라집니다. 행렬 곱셈에서 최소한의 연산을 사용하여 곱하는 순서를 찾는 것이 이 문제의 목표입니다. 이를 위해 동적 계획법(Dynamic Programming)을 사용하여 각 부분 문제를 풀고, 그 결과를 저장해 전체 문제를 해결합니다. 크기가 [5 x 3], [3 x 10], [10 x 6]인 행렬이 있을 때, (1*2) * 3의 순서로 곱하게 되면5 * 3 * 10 (150) + 5 * 10 * 6 (300) = 450회의 연산을 하게 되지만1 * (..

반응형