2025/10 11

프로그래머스, C++) Lv 2. 의상

문제https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해시 문제unordered_map을 통해 key에 대한 value를 업데이트이미 key가 있는 경우, 자동적으로 value가 업데이트 됨.set을 이용하려 했으나, key가 중복될 우려가 있어 불가더보기#include #include #include #include using namespace std; /* 의상 종류(key) : 의상 가짓수(value) */ int solution(vector> clothes) { unordere..

프로그래머스, C++) Lv 2. 게임 맵 최단거리

DFS로는 최단 거리를 구할 수 없음BFS로 가능 + 상하좌우 라는 방향을 추가더보기#include using namespace std; int solution(vector> maps) { int n = maps.size(); int m = maps[0].size(); vector> dist(n, vector(m, 0)); // 0: 미방문, 그 외: 거리 queue> q; // 이동 방향(상, 하, 좌, 우) int dx[4] = {-1, 1, 0, 0}; int dy[4] = {0, 0, -1, 1}; // 시작점 (0,0) 이 1(통로)인지 확인 if (maps[0][0] == 0) return -1; // 시작 설정 ..

카테고리 없음 2025.10.23

프로그래머스, C++) Lv 3. 네트워크

문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr DFS / BFS 둘다 가능 DFS 버전더보기#include #include using namespace std; void dfs(int node, vector>& computers, vector& visited, int n) { visited[node] = true; // 현재 노드 방문 표시 for (int i = 0; i // 자기 자신이 아니면서, 연결되어 있고, 아직 방문 안 한 경우 if (..

프로그래머스, C++) Lv 2. 영어 끝말잇기

문제https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 적힌 것을 그대로 체크하면 됨단, 턴 계산을 잘해야 됨. 더보기#include #include #include #include using namespace std; /* 가장 먼저 탈락하는 사람의 번호 + 그 사람의 몇 번째 차례일 때 탈락하는 지 1. 앞 단어의 마지막 알파벳과 지금 단어의 첫 알파벳을 체크. -> 다르면 탈락 2. 탈락하지 않는 경우도 존재. */ vector solution(int n, vector words)..

프로그래머스, C++) Lv 2. 멀리뛰기

문제https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 노트로 직접 해본 결과, 피보나치 수열과 동일했다. %1234567을 나중에 해줬을 때, 테스트 케이스 8? 9번부터 실패가 뜸.원인 분석 결과 수가 커져서 +연산이 제대로 안될 수 있기 때문그렇기 때문에 연산량이 조금 늘어나지만 미미하기에 모든 수 계산에 %1234567을 적용더보기#include #include #include // 피보나치 수열 using namespace std; long long solution(int n) { ..

프로그래머스, C++) Lv 2. 귤 고르기

문제https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해시 기반으로 크기에 대한 갯수를 받음.갯수를 기반으로 정렬하기 위해 priority_queue를 사용-> 자동적으로 갯수가 많은 것부터 정렬됨.더보기#include using namespace std; /* k : 귤의 갯수 종류를 최소화하여 귤을 판매 1) 해시 2) pq를 사용해 갯수가 많은 순으로 정렬 */ int solution(int k, vector tangerine) { int answer = 0; unordere..

프로그래머스, C++) Lv 2. 구명 보트

문제https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이 문제의 핵심-> 그리디 알고리즘, 투 포인터가장 무거운 사람과 가장 가벼운 사람을 같이 태워 구명보트를 보내야 최소가 됨.원래 코드보트에 사람이 있을 때, 없을 때를 기준으로 나눔-> 사람을 건너뛰는 경우가 있어서 실패더보기#include #include #include using namespace std; /* 최대 2명 무게 제한 5만 이하 입력: 사람의 몸무게, 보트의 limit 출력: 사용 보트의 최솟값 1) 2명을 태우는 경우 - 1..

백준, C++) 1018, 1436, 2839

1018https://www.acmicpc.net/problem/1018슬라이딩 윈도우의 개념을 몰랐다가 처음 알게 되어 이것 저것 찾아가면서 풀이추가로 wb와 bw의 관계가 opposite관계 인걸 이용해서 마지막 결과 값을 바꿔주면 bw인걸 다시 할 필요 없이 처리 가능슬라이딩 윈도우 관련 설명https://www.youtube.com/watch?v=ot5mnp_hTqo더보기void p1018(){ // 8 string WB[8] = { "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BW..