전체 글 38

programmers JadenCase 문자열 만들기

programmerslevel2 JadenCase 문자열 만들기문제 설명JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳을 소문자인 문자열이다. 주어진 문자열을 JadenCase 규칙에 맞게 리턴하는 문제이다.제한조건문자열은 알파벳, 숫자, 공백문자로 이루어져 있다.숫자는 단어의 첫 문자로만 나온다.숫자로만 이루어진 단어는 없으며, 공백문자가 연속해서 나올 수 있다.풀이#include #include #include using namespace std;string solution(string s) { string answer = ""; vector space_arr; int space_cnt = 0; for(size_t a=0; a> temp){ ..

programmers 최솟값 만들기

programmerslevel2 최솟값 만들기문제 설명길이가 같고 자연수로 이루어진 두 배열이 주어지고 두 배열의 값들 중에서 중복 없이 하나씩 뽑아 곱셈을 한다. 이를 배열에 더이상 뽑을 숫자가 없을 때까지 진행하고 곱의 결과값들의 합의 최솟값을 구하는 문제이다.#include #include using namespace std;bool descend(int j, int k){ return j>k;}int solution(vector A, vector B){ int answer = 0; sort(A.begin(), A.end()); sort(B.begin(), B.end(), descend); for(size_t i=0; i 해결 과정처음에 보고 직관적으로 모든 경우의 수를 ..

C++ 범위 기반 for문

C++ 범위 기반 for문substr()과 프로그래머스 문제를 해결하면서 vector에 for문을 활용할 때 다양한 방식을 사용하는 것을 보았다. vector arr; ... for(int a : arr){ cout위와 같이 정수형 변수를 선언해서 ++을 이용하는 것이 아니라 Python에서의 for i in range(5): print(i);이와 같이 vector안에 있는 변수에 직접 접근하는 방식이었다. 이러한 방식은 c++ 11 부터 제공하는 방식이라고 한다.예시#include #include using namespace std;int main(){ vector arr; for(int i = 0 ; i 위의 방법은 일반적인 배열, vect..

C++ 2024.07.02

programmers 올바른 괄호

programmerslevel2 올바른 괄호문제 설명괄호로 이루어진 문자열이 주어지고 해당 문자열 속의 괄호들이 올바르지 않게 열리있는 괄호가 있는지 없는지 확인하는 문제이다.#includeusing namespace std;bool solution(string s){ bool answer = false; int temp = 0; for(int i=0; i해결 과정처음에는 stack을 활용하는 문제라고 생각하고 괄호의 방향에 따라 vector에 1과 -1을 입력하고 벡터를 뒤에서부터 탐색해서 모든 요소들의 합이 0이면 모든 괄호가 짝은 지어져 있다이고 모든 요소들의 뺄셈이 -2이면 모든 괄호가 잘 닫혀있다라고 판단하고 해당 코드를 작성하였다.#include#include using nam..

programmers 최댓값과 최솟값

programmerslevel2 최댓값과 최솟값문제 설명공백으로 구분된 숫자들이 문자열로 주어지고 문자열 안의 숫자들 중 최솟값과 최댓값을 찾아 문자열로 리턴하는 문제이다.#include #include #include using namespace std;string solution(string s) { string answer = ""; int temp; istringstream iss(s); ostringstream oss; vector numbers; while (iss >> temp) numbers.push_back(temp); int min = numbers[0]; int max = numbers[0]; for (int num : numbers) ..

C++ 문자열에서 숫자 분리하기

C++ 문자열 파싱: 숫자 추출의 기술프로그래머스에서 숫자들이 공백으로 나뉘어져 주어진 문자열을 다루는 문제가 있었다. Python에서는 split을 통해 간단하게 해결할 수 있으나 C++ 환경에서 처음 다뤄보았다. 해당 포스트는 문자열에서 원하는 문자열을 추출하는 방법에 대한 설명이다.substr초기 접근 방식은 substr 함수와 반복문을 활용하는 것이었다. 하지만 이 방법은 음수를 나타내는 '-' 기호를 처리하기 위해서는 예외처리가 필요한 문제가 있다.sstream: 파싱의 정석sstream 라이브러리의 istringstream 클래스는 이러한 문제를 해결한다. 공백으로 구분된 숫자들을 간편하게 처리할 수 있다. 아래는 istringstream을 이용해서 문자열에어 공백을 기준으로 문자열을 분리하..

C++ 2024.07.01

programmers 호텔 대실 c++

programmerslevel2 호텔 대실문제 설명다양한 예약시간이 주어지고 모든 호텔 이용객을 수용할 수 있는 최소한의 방 개수를 구하는 문제이다.#include #include #include using namespace std;//대소비교를 용이하게 하기위해 시간을 모두 분으로 환산하고 오름차순으로 정렬한다. 방을 사용하기 시작하는 시간이면 1 끝나는 시간이면 -1로 저장하고 정렬했으니까 어떠한 예약이든 합은 0이다. 하지만 최대로 몰리는 시간에 필요한 최소한의 방의 수가 필요한 것이므로 방이 가장 많이 열려있는 시점에 방의 개수를 기록하면 된다. int solution(vector> book_time) { int answer = 0; vector> reserved_time; //..

C++ substr()

C++ substr() : 문자열 자르기C++에서 문자열을 다룰 때 특정 부분만 추출해야 하는 경우가 자주 발생합니다. 이때 유용하게 사용되는 함수가 바로 substr()입니다. C++ substr() 함수의 사용법과 활용 예시를 자세히 알아보겠습니다.함수 원형std::string substr(size_t pos = 0, size_t count = npos) const;pos: 추출할 문자열의 시작 위치 (기본값: 0)count: 추출할 문자열의 길이 (기본값: npos, 문자열 끝까지)반환값: 추출된 부분 문자열substr() 함수란?substr() 함수는 문자열의 일부를 추출하여 새로운 문자열을 반환하는 함수입니다. pos 위치에서 시작하여 count만큼 문자열을 잘라낼 수 있습니다.사용 예시#inc..

C++ 2024.06.28