목록코딩테스트 (122)
Deff_Dev

문제풀이Stack을 이용하여 해당 문제를 풀이했다. 입력된 수가 0이 아니라면 push, 0이라면 pop을 했고, 이후 스택에 있는 모든 수를 더한 뒤 출력했다.#include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); int k, input; cin >> k; stack stack; for (int i = 0; i > input; if (input == 0) stack.pop(); else stack.push(input); } int sum = 0; while (!stack.empty()) { sum += stack.top(); stack.pop(); } cout

문제 풀이이 문제는 에디터에 입력된 문자열과 명령어들을 토대로 최종 문자열을 출력하는 문제이다. List를 이용하여 해당 문제를 풀이했다. 입력된 문자열을 Char 형식의 List에 저장하고 cursor를 List의 마지막 위치로 저장한다.이후, 명령어를 입력하고, 입력된 명령어에 따라 명령을 수행한다. else if (c == 'B'){ if (cursor != editor.begin()) { cursor--; cursor = editor.erase(cursor); }} 여기서 문자를 삭제할 때, cursor에 erase 반복자를 저장하는 이유 ?cursor 위치의 값을 삭제한다면 cursor는 유효하지 않은 노드를 가르키고 있기 때문에 삭제된 요소 다음 위치를 가리키는 새로운 반복자를 저장해야한다..

문제입력된 문자열을 토대로 비밀번호를 출력하는 문제이다. 입력에는 3가지의 규칙이 존재한다.' ' > ' 은 커서 오른쪽 이동' - ' 은 커서 바로 앞 문자 지우기풀이vector를 이용하여 해당 문제를 풀이했지만 시간 초과가 났다.더보기#include #include #include using namespace std;int cursor = 0;void GetPassword(string input) { int length = input.length(), cursor = 0, n= 0; vector password; for (int i = 0; i ') { int l = password.size(); cursor = min(cursor + 1, l); } else if (c == '-') { ..

문제https://www.acmicpc.net/problem/13300문제 설명정보 초등학교에서는 단체로 2박 3일 수학여행을 가기로 했다. 여러 학년이 같은 장소로 수학여행을 가려고 하는데 1학년부터 6학년까지 학생들이 묵을 방을 배정해야 한다. 남학생은 남학생끼리, 여학생은 여학생끼리 방을 배정해야 한다. 또한 한 방에는 같은 학년의 학생들을 배정해야 한다. 물론 한 방에 한 명만 배정하는 것도 가능하다.한 방에 배정할 수 있는 최대 인원 수 K가 주어졌을 때, 조건에 맞게 모든 학생을 배정하기 위해 필요한 방의 최소 개수를 구하는 프로그램을 작성하시오.예를 들어, 수학여행을 가는 학생이 다음과 같고 K = 2일 때 12개의 방이 필요하다. 왜냐하면 3학년 남학생을 배정하기 위해 방 두 개가 필요하고..

문제https://www.acmicpc.net/problem/3273 문제 설명n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i 입력첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000)출력문제의 조건을 만족하는 쌍의 개수를 출력한다.풀이이 문제는 입력된 n개의 숫자들 중 두 수의 합이 x가 될 수 있는 모든 경우의 수를 구하는 문제이다. O(n^2)으로 풀이하게 되면 시간 초과가 나오기 때문에 더 효율적인 방법으로 풀..

https://www.acmicpc.net/problem/1475 문제 설명다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)입력첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.출력첫째 줄에 필요한 세트의 개수를 출력한다. 풀이입력된 roomNumber를 string으로 변환하여, 해당 문제를 풀이했다. 입력된 roomNumber의 각 번호 갯..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제의 조건은 다음과 같다.짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다.홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다.여기서 주의해야할 점은 여기서 얘기하는 짝수, 홀수 인덱스는 query[i]의 값이 아닌 i 값이라는 거다. 위 내용만 생각하면 문제 자체는 어렵진 않았다.#include using namespace std;bool IsEven(int num){ return num % 2 =..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 주어진 0 ~ 9 까지의 숫자들 중 없는 숫자를 더하고 반환하는 문제이다. 주어진 숫자들을 오름차순 정렬한 뒤, 없는 숫자를 찾는다.이때, 주어진 숫자가 8 이하 일 경우를 생각해서 9까지의 없는 숫자를 다시 한 번 찾는다.#include #include using namespace std;int solution(vector numbers) { int answer = 0, curNum = 0; sort(numbers.begin(), numbers.end()); for (int i = 0; i