⭐ 코딩테스트
[프로그래머스 C++] 주차 요금 계산
[프로그래머스 C++] 주차 요금 계산
2023.10.06[프로그래머스 C++] 주차 요금 계산 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 문자열 substr sstream 코드 #include #include #include #include using namespace std; vector solution(vector fees, vector records) { map inTime; // 각 차량의 마지막 입차 시간 map totalTime; // 각 차량의 총 주차 시간 for (st..
[프로그래머스 C++] 길 찾기 게임
[프로그래머스 C++] 길 찾기 게임
2023.10.04[프로그래머스 C++] 길 찾기 게임 https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 이진트리 Binary Tree 정답코드 #include #include #include #include using namespace std; #define TIII tuple struct Node { Node(int x, int y, int idx) : x(x), y(y), idx(idx) {}; int x; int y; int idx; Node* p..
[프로그래머스 C++] 전화번호 목록
[프로그래머스 C++] 전화번호 목록
2023.10.02프로그래머스 C++] 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 set, string phone_book[i + 1].substr(0, phone_book[i].size()) basic_string substr(size_type start = 0, size_type count = nstart) const; [start, start+ count) 문자열의 start 번째 문자부터 count 길이 만큼의 문자열 추출 처..
[프로그래머스 C++] [3차] 압축
[프로그래머스 C++] [3차] 압축
2023.09.27[프로그래머스 C++] [3차] 압축 https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 Map 검색 LZW(Lempel–Ziv–Welch) 압축 알고리즘 정답 코드 #include #include #include using namespace std; map myMap; // 사전 등록에 쓰일 map vector solution(string msg) { vector answer; for (int i = 0; i < 26; i++) ..
[프로그래머스 C++] 타겟 넘버
[프로그래머스 C++] 타겟 넘버
2023.09.26[프로그래머스 C++] 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 소수 구하기, 에라토스테네스의 체 (맨 아래에 코드 설명 참조) 문자열 stol 주의할 점! 진법 변화 시 검사하는 숫자값이 커지니 int가 아닌 long long을 사용해야 한다. stoi (x), stol (o) 소수 판정 방법 처음 시도한 코드 #include #include using namespace std; int solution(int n, ..
[프로그래머스 C++] 타겟 넘버
[프로그래머스 C++] 타겟 넘버
2023.09.25[프로그래머스 C++] 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 DFS BFS DP 처음 시도한 코드 DFS - 시간초과 #include #include #include using namespace std; int answer; // 타겟 넘버를 만드는 방법의 수 int ch[1001]; // 방문 체크 배열 void DFS(int x, int sum, int target, vector& numbers) { if(x ..
[백준 2667번 C/C++] 단지 번호 붙이기
[백준 2667번 C/C++] 단지 번호 붙이기
2023.09.24[백준 2667번 C/C++] 단지 번호 붙이기 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 해결전략 Breadth First Search (BFS), 너비우선탐색 코드 #include #include #include #include using namespace std; int n, cnt; // n: 맵의 크기, cnt: 단지의 크기 vector v, ch; // v: 입력받은 맵, ch: 방문 여부를 체크 vector house; // 단..
[프로그래머스 C++] 프로세스
[프로그래머스 C++] 프로세스
2023.09.23[프로그래머스 C++] 프로세스 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 Queue 큐, Priority_Queue 우선순위 큐 코드 #include #include #include using namespace std; int solution(vector priorities, int location) { queue Q; priority_queue pQ; for (int i = 0; i < priorities.size(); i++..
[프로그래머스 C++] 기능개발
[프로그래머스 C++] 기능개발
2023.09.22[프로그래머스 C++] 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 스택 Stack 나눗셈 올림 x와 y가 양의 정수, x / y의 결과값을 올림하기 위한 코드 int ceilResult = x / y + ( x % y !=0 ); 올림 함수 : ceil() 내림 함수 : floor() - 올림 함수와 내림 함수는 소수형인 double, float형 일 때는 효과적이나 주어진 값이 정수이면 위의 코드 방식이 더 수월하다. ..
[프로그래머스 C++] [1차] 뉴스 클러스터링
[프로그래머스 C++] [1차] 뉴스 클러스터링
2023.09.21[프로그래머스 C++] [1차] 뉴스 클러스터링 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 isupper() 대문자인지 확인 tolower() 대문자를 소문자로 변환 string tmp = str1.substr(i, 2); C++의 std::string 클래스에서 사용할 수 있는 substr 함수를 사용하여 문자열에서 일부를 추출하는 코드. str1은 원본 문자열이며, i는 현재 문자열에서 추출을 시작할 위치를 나타낸다. ..
[백준 2206번 C/C++] 벽 부수고 이동하기
[백준 2206번 C/C++] 벽 부수고 이동하기
2023.09.20[백준 2206번 C/C++] 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 해결전략 너비우선탐색, Breadth-First Search (BFS) 코드 #include #include #include using namespace std; int n, m; //n: 세로, m: 가로 vector v; // nxm 맵 int dirY[4] = { -1, 0, 1, 0 }; int dirX[4] = {..
[프로그래머스 C++] 튜플
[프로그래머스 C++] 튜플
2023.09.19[프로그래머스 C++] 튜플 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 map pair 코드 #include #include #include #include using namespace std; vector solution(string s) { map m; // 숫자와 그 등장 횟수를 저장할 맵 int tmpNum = 0; // 현재 파싱 중인 숫자 //처음과 끝의 {, } 제외하고 for문을 돌린다. 1~s.size()-..