본문 바로가기

전체 글357

[C++/PGS] Lv.3 : 합승 택시 요금 (BFS/다익스트라) https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3bfs로 최소경로 탐색하는 건 알겠는데,합승 경로(S~p) + 합승지점부터 A까지 + 합승지점부터 B까지의 합의 최솟값을 구해야 하니S~A, S~B의 최솟값을 구하고, 겹치는 부분을 빼면 되는건가? 싶었다.하지만 뭔가 아닌 것 같아서,,,, 힌트를 참조했다 ㅎㅎ 알고 보니 다익스트라 알고리즘을 사용해서, [ S~p + A~p + B~p ] 거리의 최소합을 구하면 되는 문제였다!S,A,B부터 출발해서 모든 점에 대한 최소 거리를.. 2025. 5. 24.
[C++/PGS] Lv.2 : 모음사전 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨2.다양한 방법이 있는데, 나는 dfs를 활용한 완탐 풀이로 해결했다. 나의 풀이#include #include #include using namespace std;int answer = 0;char clist[5]={'A','E','I','O','U'};bool dfs(string w, string answerStr){ if(w.length()>5) return false; if(w==answerStr) return .. 2025. 5. 24.
[C++/PGS] Lv.1 : 같은 숫자는 싫어 (Stack) https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 1.스택을 활용하여 간단하게 풀었다.단순하게, top에 같은 수가 있다면 넣지 않는 알고리즘이다. 나의 풀이#include #include #include #include using namespace std;vector solution(vector arr) { vector answer; stack st; for(int a : arr){ if(!st.empty() && st.top()==a) conti.. 2025. 5. 24.
[C++/PGS] Lv.2 : 뒤에 있는 큰 수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨2. 1. 첫 시도 : 94.6점 (테케 20, 22번 시간초과) 뒤에서부터 탐색하면서, 최댓값을 갱신해주고작은 수를 만나면 그 위치부터 최댓값까지의 범위에서만 for문을 돌려주었다.그랬더니 37개 중에 2개 틀려서..실패🥹 시간을 더 줄여야 한다!!! 2. 두번째 시도 - 성공 💯💯💯내 기존 코드에서 오래걸리는 경우가 [10, 1, 1, 1, 1, 1, 1, 1, ... 1, 12] 이런 경우일 거라고 추정했다.그래서,.. 2025. 5. 15.
[C++/PGS] Lv.2 : 롤케이크 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.반으로 잘라서 좌/우 토핑 갯수가 일치하도록 만드는 문제이다롤케이크에 토핑이 백만개~~~ Set을 사용해서도 간단하게 풀 수 있지만, 시간 초과가 날 것이라고 예상했고Map이나 배열을 사용해서 토핑 종류를 좌측부터 & 우측부터 누적시킨 뒤 풀이하면 된다.해당 위치 i에서 반을 갈랐을 때, left[i]와 right[i+1]의 값이 같다면 가능한 경우로 셈한다. 나의 풀이#include #include #include us.. 2025. 5. 14.
[C++/PGS] Lv.2 : 튜플 (2019 카카오) https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.사실 처음에는 단순한 Set 자료형 활용하는 문제인 줄 알았으나, 함정이었다. 배열이 아니라 string s가 매개변수인 것+튜플의 원소 순서가 중요+숫자의 등장 순서 파악 필요 이 복잡한 요소들이 섞여있는 문제.....ㅎ.ㅎ사실 문제를 읽고도 어떻게 순서가 정해지는건지 이해가 안돼서 결국 힌트를 참고했다.튜플의 원소 순서를 쉽게 구하려면, 한 숫자가 몇 번 등장하는지 카운트하면 된다!!! 😱 엄청난.. 2025. 5. 14.
[Javascript/PGS] Lv.2 : [1차] 캐시 (2018 KAKAO) https://school.programmers.co.kr/learn/courses/30/lessons/17680프로그래머스 레벨 2.캐시 저장공간을 구현하는 단순 구현 문제이다. 캐시 교체 알고리즘은 LRU(Least Recently Used)이므로, 최근 사용했던 순위를 기억해주어야 한다.따라서, 캐시 배열에 가장 최근 사용한 것은 1로,나머지 것들은 해당 위치의 값에 1씩 더해주었다. 주의할 점은 대소문자 구분을 없애야 한다는 것! 나의 경우는 js라서 toLowerCase 함수를 사용했다. 나의 풀이function solution(cacheSize, cities) { var answer = 0; let cache = new Array(cacheSize).fill(["",0]); .. 2025. 5. 14.
[Javascript/PGS] Lv.3 : 표 편집 (연결리스트) https://school.programmers.co.kr/learn/courses/30/lessons/81303# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3. 정답률 40% 첫 시도에서 Map을 활용하여 풀었다.그런데 효율성 실패..!ㅠㅠ단순 구현이 아니라, 연결 리스트 형식으로 풀어야 하는 문제였다 🤯 그래서 next, prev 배열에 각각 다음/이전 위치를 저장해주며 연결 관계를 나타냈다.이건 실제 연결리스트 기법은 아니고, 배열로 작동 방식을 모방한 것이다!실제로 연결리스트를 사용하려면, 아래와 같이 포인터를 가지는 노드 클래스를 선언하고 쓰면 된다class Node .. 2025. 5. 14.
[Javascript/PGS] Lv.2 : 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨2.행렬곱 구현 문제정답률도 67%이고 개념을 알아도 은근히 헷갈려서 풀어보면 좋은 문제인 듯 하다 나의 풀이function solution(arr1, arr2) { var answer = []; let a1 = arr1.length; let a2 = arr1[0].length; let b1 = arr2.length; let b2 = arr2[0].length; for(let i=0; i 2025. 5. 13.
[Javascript/PGS] Lv.3 : 인사고과 https://school.programmers.co.kr/learn/courses/30/lessons/152995# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3. js정답률이 40%대인 만큼 꽤나 어려웠던 구현 문제 단순히 이중반복문으로 비교해서 탈락자를 처리해도 되지만, 범위가 커서 시간초과가 날 것이다...그래서 적절하게 scores를 정렬하고(a는 내림차순, b는 오름차순),각 인덱스 요소의 b가 max_b보다 작으면 이 친구보다 더 큰 값이 항상 있다는 뜻이므로 0으로 초기화해준다. 그리고 배열을 만들어서, "scoreIndex[점수의 합 sum] = 점수 합이 sum인 .. 2025. 5. 9.
[MySQL/PGS] Lv.4 : 자동차 대여 기록 별 대여 금액 구하기 🥵 https://school.programmers.co.kr/learn/courses/30/lessons/151141 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 4, mysql테이블 3개를 조인해야 해서 신경쓸게 정말 많고, 복잡한 문제였다. 할인율 계산하는 서브쿼리에서일 수를 구하기 위해 datediff 함수를 사용해야 하고,할인율이 0일 경우를 고려해 ifnull 함수를,문자열에서 숫자만 추출하기 위해 replace, substring_index를이걸 또 숫자로 변환하기 위한 cast 함수를 써야 했다 ㅎ.ㅎ.... 사실 Duration_type이 3개로 고정되어 있어서, 이렇게까.. 2025. 5. 9.
[MySQL/PGS] Lv.3 : 오랜 기간 보호한 동물(2) https://school.programmers.co.kr/learn/courses/30/lessons/59411 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3mysql join, order, limit 등을 사용해야 한다. 나의 풀이select o.ANIMAL_ID, o.NAMEfrom animal_ins i, animal_outs owhere i.animal_id = o.animal_idorder by (o.datetime-i.datetime) desclimit 2; 2025. 5. 9.
728x90
반응형