본문 바로가기

Algorithm(코딩테스트)/스택&큐&덱3

[프로그래머스] 기능개발 (Java) 문제 정보  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 교훈점1. [5, 10, 1, 1, 20, 1] 에서 모든 배열의 원소값을 [0] 인덱스의 값 만큼 빼서 [0, 5, -4, -4, 15, -4] 로 만들고 싶을 때 아래와 같이 코드를 작성하면 안된다.for(int i=0; i왜냐하면 deploy[0]의 값이 0으로 바뀌어서 i가 1부터는 deploy[1] -= 0; 의 꼴이 되어버린다. 이런 경우 아래 코드와 같이 deploy[0] 을 다른 변수에 저장해두고 사용해야 한다.int minus = deploy[0];for(int i=0; i  1. 배열로 풀이 O(n^2)1. 배포까지의 걸리는 .. 2025. 3. 22.
[백준] 1966 : 프린터 큐 (C++) deque dq; dq.push_back(1); dq.push_back(2); dq.push_back(3); 문제 문제 분석 - 문제에서 주어진 조건대로만 잘 구현하면 된다. - 앞 뒤로 데이터가 push 되기 때문에 deque 자료구조를 사용한다. - N이 최악의 경우 100이므로 시간 복잡도를 크게 신경쓰지 않아도 된다. O(N^4)까지 괜찮다. 정답 코드 // 풀이 시간 : 41분 28초 #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cin.tie(nullptr); int testcase; cin >> testcase; // 1번째줄 : testcase 수 for (int i = 0; .. 2024. 2. 10.
[백준] 17413 단어 뒤집기 (C++) 문제 문제 분석 - 문자열의 substr 함수를 이용해도 되고 deque을 이용해도 된다. 필자는 deque을 이용하여 풀이했다. - 입력을 받을 때 띄어쓰기를 입력 종료로 받아들여지면 안되므로 getline으로 입력받는다. - '' 문자열이 나오면 이전 단어는 그대로 출력 + reverse_flag = true; 을 진행한다. - ' ' 문자열(띄어쓰기)이 나오면 reverse_flag 조건에 맞게 출력해준다. - 일반 문자열이 입력되면 deque에 push 해준다. - 단어를 그대로 출력하려면 front() 순서대로 출력해주고, 단어를 반대로 출력해주려면 back() 순서대로 출력해주면 된다. - 이때 문제의 조건 2번에서 '문자열의 시작과 끝은 공백이 아니다.' 이므로 마지막 단어가 deque에 남.. 2024. 2. 8.