'분류 전체보기' 카테고리의 글 목록 (2 Page)
본문 바로가기

분류 전체보기121

[프로그래머스] 더 맵게(python) 문제 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한조건 scoville의 길이는 2 이상 1,000,000 이하입니다. K는 0 이상 1,000,000,000 이하입니다. scov.. 2022. 9. 16.
[프로그래머스] 모의고사(python) + 반례 문제 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한조건 시험은 최대 10,000 문.. 2022. 9. 4.
[프로그래머스] 올바른 괄호 (python) 문제 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 만드는 문제입니다. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 풀이 이 문제는 스택을 이용하여 여는 괄호( '(' ) 와 닫는 괄호( ')' ) 의 짝이 일치하는지를 찾는 문제입니다. 문제의 해결을.. 2022. 9. 1.
[프로그래머스] 소수 찾기(python) 문제 문제 설명 1 부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만든다. 여기서 소수는 1과 자기 자신으로만 나누어지는 수를 의미 (1은 소수가 아님) 제한 조건 n은 2이상 1000000이하의 자연수 입출력 예시 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 풀이 이 문제는 입력받은 수 n에 대하여 1과 n 사이에 소수가 몇개 존재하는지 찾는 문제입니다. 처음 이 문제를 보고 레벨 1의 문제이기도 하고, 2 부터 n 까지의 수가 소수인지를 하나하나 알아보면 된다고 판단을 했습니다. 그래서 이중 for문을 이용하여 i번째의 수를 2부터 i-.. 2022. 8. 26.
[프로그래머스] 없는 숫자 더하기 (python) 문제 풀이 이 문제는 먼저 0~9까지의 숫자 중 numbers 리스트에 존재하지 않는 수를 찾아야 하므로, 0~9까지 반복하는 동안 numbers 리스트의 값들과 비교하기 위해 이중 for문을 이용하여 비교를 진행하였습니다. 또한 각 숫자를 비교하는 동안 같은 숫자가 나왔는지를 확인하기 위해 flag를 두어 같은 값이 나왔을 경우 flag 값을 1로 바꾸어주고, numbers 리스트의 모든 값과 비교 후 flag 값이 0인 수의 값을 최종적으로 리턴해야하는 answer 값에 더하는 방식으로 풀이를 진행하였습니다. 소스코드는 아래와 같습니다. 소스코드 def solution(numbers): answer = 0 for i in range(10): # 0부터 리스트의 값과 일치하는 값 있는지 확인 flag .. 2022. 8. 17.
[프로그래머스] 로또 최고 순위와 최저 순위 (python) 문제 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 여기에서 제한사항은 다음과 같습니다. lottos는 길이 6인 정수 배열입니다. lottos의 모든 원소는 0 이상 45 이하인 정수입니다. 0은 알아볼 수 없는 숫자를 의미합니다. 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다. lottos의 원소들은 정렬되어 있지 않을 수도 있습니다. win_nums은 길이 6인 정수 배열입니다. win_nums의 모든 원소는 1 이상 45 이하인 정수입니다. win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다. win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다. 또한 로.. 2022. 8. 15.
[프로그래머스] 완주하지 못한 선수 (python) 문제 풀이 이 문제를 정리하면 다음과 같습니다. 1. 참가자(participant), 완주자(completion) 2개의 리스트가 존재 2. completion의 크기는 participant의 크기보다 1 작음. 3. 완주하지 못한 사람 1명의 이름을 return 저는 위의 조건을 보고 단순히 participant와 completion을 직접 비교 후 같은 값이 존재하면 리스트의 값을 삭제한 후 마지막에 남는 값을 출력하면 되는 간단한 문제라고 생각했습니다. 그래서 아래 코드와 같은 방식으로 풀이를 진행했습니다. def solution(participant, completion): answer = '' for i in completion: for j in participant: if (i == j): p.. 2022. 8. 9.
백준 1181_단어정렬 [C++] 문제 풀이 이 문제에서 정렬을 위한 조건은 다음과 같습니다. 1. 길이가 짧으면 앞쪽으로 정렬된다. 2. 길이가 같은 경우에는 사전 순서로 해서 빠른 단어가 앞쪽으로 정렬된다. 위와 같은 두 가지 조건을 이용하여 a와 b의 길이가 같은 경우에 사전순서대로 정렬( return a> input; v.push_back(input); } sort(v.begin(),v.end(),comp); for(int i=0; i 2022. 7. 19.
백준 11651_좌표 정렬하기 2 [C++] 문제 풀이 이 문제는 좌표 정렬하기 문제와 같이 오름차순으로 정렬하면 되는 문제이나, x축 기준이 아닌 y축 기준으로 먼저 정렬 후, y축이 같으면 x축 기준으로 정렬하는 문제입니다. 따라서 sort 함수로 정렬을 하되, 정렬하는 방식에 대해서는 따로 함수를 만들어 주어 vector의 second 값부터 비교하여 정렬하고, 만약 second 값이 같은 경우 first 값을 기준으로 정렬하는 방식으로 풀이를 해주면 됩니다. 소스코드는 아래와 같습니다. 소스코드 #include #include #include using namespace std; bool cmp(pair a, pair b) { if(a.second < b.second) return true; else if(a.second==b.second).. 2022. 7. 18.