프로그래머스(Programmers)
-
오픈채팅방프로그래머스(Programmers) 2021. 12. 9. 20:42
제한사항 record는 다음과 같은 문자열이 담긴 배열이며, 길이는 1 이상 100,000 이하이다. 다음은 record에 담긴 문자열에 대한 설명이다. 모든 유저는 [유저 아이디]로 구분한다. [유저 아이디] 사용자가 [닉네임]으로 채팅방에 입장 - "Enter [유저 아이디] [닉네임]" (ex. "Enter uid1234 Muzi") [유저 아이디] 사용자가 채팅방에서 퇴장 - "Leave [유저 아이디]" (ex. "Leave uid1234") [유저 아이디] 사용자가 닉네임을 [닉네임]으로 변경 - "Change [유저 아이디] [닉네임]" (ex. "Change uid1234 Muzi") 첫 단어는 Enter, Leave, Change 중 하나이다. 각 단어는 공백으로 구분되어 있으며, 알파벳..
-
숫자 문자열과 영단어프로그래머스(Programmers) 2021. 12. 6. 20:52
제한사항 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다. 입출력 예 sresult "one4seveneight" 1478 "23four5six7" 234567 "2three45sixseven" 234567 "123" 123 입출력 예 설명 입출력 예 #1 문제 예시와 같습니다. 입출력 예 #2 문제 예시와 같습니다. 입출력 예 #3 "three"는 3, "six"는 6, "seven"은 7에 대응되기 때문에 정답은 입출력 예 #2와 같은 234567이 됩니다. 입출력 예 #2와 #3과 같이 같은 정답을 가리키는 문자열이 여러 가지가 나올 수 있습니다. 입..
-
주식가격프로그래머스(Programmers) 2021. 12. 3. 01:17
#include #include #include using namespace std; vector solution(vector prices) { int size=prices.size(); stack can; //stack에는 해당prices의 값이 들어가는 시간이 쌓인다. vector arr(size); //몇초 지났는지 넣을 vector for(int i=0; i prices[i]) // stack이 비어있지 않고 && 스택 맨위의 인덱스에 해당하는 prices의 가격 이 곧 들어올 prices보다 큰 경우 = 가격이 하락한 경우 { arr[can.top()] = i-can.top(); can.pop(); } can.push(i);// 하락한 경우가 아닐 경우, stack에 prices의 INDEX값 ..
-
위장프로그래머스(Programmers) 2021. 12. 1. 10:41
제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이하인 자연수이고 알파벳 소문자 또는 '_' 로만 이루어져 있습니다. 스파이는 하루에 최소 한 개의 의상은 입습니다. #include #include #include using namespace std; int solution(vector clothes) { int answer = 1; map clothMap; // key : 옷 종류, value : 갯수 for(int i=0; i< clothes.size(); i++) { c..
-
프린터프로그래머스(Programmers) 2021. 11. 28. 21:04
#include #include #include #include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 1; queue arr; //first : priority, second : index priority_queue priQue; for(int i=0; i queue와 priority queue를 사용하는 문제입니다. => priority를 사용하지 않을 경우 매번 지금 queue에 남아 있는 원소들 중 priority가 가장 높은 아이가 누구인지를 for문을 통해 찾아야 합니다. => 저는 이런방식을 사용하려 했지만, 오류가 나였으며 우선순위 큐를 사용할 경우 삽..
-
가장 큰 수프로그래머스(Programmers) 2021. 11. 26. 21:43
#include #include #include #include #include using namespace std; bool cmp(string A, string B) { return A+B > B+A; } string solution(vector numbers) { string answer = ""; vector arr; for(int i=0; i string형으로 변환 후, 해당 배열을 큰 순으로 정렬하는 과정이 필요합니다. => cmp 함수를 생성해 해당 배열을 sorting합니다. *** string형태의 숫자이지만 '1'뒤에 '2'가, '2'뒤에 '3'이 있으므로 cmp함수로 비교를 하여도 숫자형의 비교와 다르지 않습니다. => 정렬된 배열은 이미 각 원소중 가장 큰 부분의 수로 정렬되어 있는..
-
K번째 수프로그래머스(Programmers) 2021. 11. 25. 20:31
입출력 예 설명 [1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다. [2, 3, 5, 6]의 세 번째 숫자는 5입니다. [1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다. [6]의 첫 번째 숫자는 6입니다. [1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자릅니다. [1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다. #include #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; int comLimit = commands.size(); for(int i=0; i..