C++ 16

[프로그래머스/c++] 올바른 괄호

https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 1) 풀이 해당 문제의 풀이과정은 따로 적어두지 않을 예정이다! 자기 전에 오늘 공부 안 했다는 죄책감때문에 가볍게 푼 문제라 백준에서 푼 문제와 풀이 방식이 똑같다! 풀이를 적어놓은 그 글을 대신 첨부하겠다. 2021.03.06 - [알고리즘 | 자료구조/백준] - [백준/c++] 9012 - 괄호 2) 최종 소스코..

[프로그래머스/c++] 기능개발

https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 1) 풀이 작업의 진행상황(progresses)과 진행속도(speeds)가 들어있는 벡터가 각각 하나씩 주어진다. 벡터 사이즈와 작업의 인덱스(ex. progresses idex 0에 들어있는 작업=speeds idex 0에 들어있는 작업) 가 동일하므로, 각각의 벡터에 동일한 인덱스의 값을 확인하고 작업을 완료할 때까지의 날짜를 구하면 된다. 우선, 1..

[프로그래머스/c++] 프린터

https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 이래저래.. 정신없어서 블로그에 글을 못 썼다! 자취방도 드디어 구하고 키키 다시 열심히 공부해야지 1) 풀이 우선, 가장 앞에 있는 문서를 빼고 중요도를 확인한 뒤 마지막에 넣거나 인쇄하는 과정이 필요하므로 큐(queue)를 이용해서 푸는 문제임을 알 수 있다. priorities에 있는 문서를 큐에 모두 저장하고 빼고 넣는 과정을 진행하면 된다. 하지만 한 가지..

[프로그래머스/c++] 짝지어 제거하기

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 1) 풀이 처음에는 단순히 '문자열' 문제라고 생각했다... 주어지는 것도 string 이었고 adjacent_find함수를 통해서 짝지어지는 문자의 iterator를 받아서 erase에 넣고 지워주는 코드를 짰다.. 아래가 제일 처음 내가 짰던 코드다. #include #include #include using namespace std; int s..

[프로그래머스/c++] 폰켓몬

https://programmers.co.kr/learn/courses/30/lessons/1845?language=cpp 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 1) 풀이 폰켓몬 N/2 마리를 최대한 많은 종류로 선택하는 방법은, 주어지는 폰켓몬 배열에서 중복값을 제거하고 고르는 방법이다. 중복값을 제거하는 방법은 unique 함수를 이용하면 된다. 해당 함수로 중복값을 제거하는 방법은 아래 글에 정리해놓았다! 2021.06.16 - [언어/c++] - [c++] vector 중복원소 제거(so..

[c++] vector 중복원소 제거(sort, unique)

※배워가고 있는 학생입니다. 틀린 부분이 있다면 댓글로 피드백 부탁드려요😁 알고리즘 문제를 풀다보면, 벡터에서 중복원소를 제거해야 하는 경우가 나온다. 해당 경우에 쉽게 중복원소를 제거할 수 있는 방법을 알아내 정리해보려고 한다! 1) unique 함수 - 헤더에 정의되어 있는 함수 - 벡터 내에서 중복되지 않는 원소들을 앞에서부터 채워나가는 함수 즉, 벡터 내에서 중복되는 값을 뒤쪽으로 모아줌 - 자신이 바꾼 vector의 end() 반환 (첫번째 중복값의 iterator 반환) - 앞뒤 원소들을 비교하기 때문에 반드시 sort 로 정렬한 뒤 사용해야 함! 2) 중복 원소 지우기 1. 벡터를 정렬(sort) 2. 중복 원소들을 벡터의 뒷부분으로 보내기 (unique) 3. 중복된 원소들을 삭제 (era..

그외/C++ 2021.06.16

[프로그래머스/c++] 완주하지 못한 선수

https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 1) 풀이 요즘 프로그래머스를 열심히 푸는 중인데, 이것도 이 형식에 적응하다보니 좀 풀만한 것 같기도 하고... 그치만 백준을 너무 오래도록 풀어서 아직까지 어색한 감은 있다.. 아무튼, 위 문제는 단순히 생각하면 오히려 쉽게 풀리는 문제이다. 처음에는 참여자 배열의 값들을 반복문으로 하나씩 find함수에 넣고, 해당 값이 completio..

[c++] vector<vector<int>> (이차원 벡터) 길이

※배워가고 있는 학생입니다. 틀린 부분이 있다면 댓글로 피드백 부탁드려요😁 * 이 글은 vector와 vector의 개념을 알고 있다는 전제 하에 설명이 되어있습니다. 이전부터 2차원 vector를 계속 사용해왔지만, 항상 문제를 풀 때 입력받은 int로 row와 column을 설정해왔기에 길이를 구하는 방법은 나도 오늘 처음 알았다! 🙄 .size() 결론부터 말하자면, vector 크기를 구할 때 늘 사용해왔던 .size()함수를 이용하면 된다! row: 벡터.size() column: 벡터[0].size() 우리가 알고 있듯, vector는 vector를 각각의 row에 넣어주는 방식의 2차원 동적배열이다. 그냥 .size()함수를 사용하면 기본적으로 row의 길이만 리턴되지만, 해당 row에 들어..

그외/C++ 2021.06.13

[프로그래머스/c++] 체육복

https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 이 문제를 풀고 나서 다른 분의 풀이를 보고 나서 아..! 싶었다. 알고리즘을 몇 개 아는 지금 이 시점에서, 알고리즘 연습 문제는 어떻게든 풀 수 있다.. 그리고 내가 알고 있는 방법 내에서 충분히 효율적으로 풀 수 있음에도 지금의 나는 그냥 무작정 어떻게든 풀어내려는 게 습관화 되어있는 것 같다😥 앞으로는 효율을 생각해봐야지... 1) 풀이 별거 아닌 문제인데..

[백준/c++] 2217 - 로프

https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 1) 풀이 이 문제가 '그리디 알고리즘'과 관련된 문제라고 하던데.. 사실 난 그런 알고리즘 모른다😂 나중에 시간 날 때 찾아보고 정리해놔야지...(이러고 안 적은게 수십개.. 부지런해지자ㅠ~) 이 문제에서 고민해봐야 할 조건은 두 가지 1) 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 2) k개의 로프를 사용해 중량 w를 들어올리면 각 로프에 ..

728x90