문제 문제 읽기 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 해결 다단계 구조를 재귀로 탐색하게 함 map을 사용하여 탐색시간 줄임(안그러면 시간초과남) 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/77486 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include using namespace std; void calc(map &referrals, map &revenue, int cost, ..
문제 문제 읽기 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 해결 실제로 이차원 배열을 만들어서 회전시킴 기존의 좌표 개념이랑 문제의 좌표 개념이 다른 듯 하다🤔 문제를 꼼꼼히 읽자 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/77485 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include using namespace std; int mmap[100][100]; int rot..
문제 문제 읽기 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 해결 map으로 점수판 구현 최대 등수를 계산할 때 모르는 번호는 항상 맞다고 가정 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/77484 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include using namespace std; map pt {{6, 1}, {5, 2}, {4, 3}, ..
문제 문제 읽기 해결 재귀를 통해 모든 경우의 수를 계산함 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/87946 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include #include using namespace std; int solution(int k, vector dungeons) { int ret = 0; for(int i = 0; i k) continue; vector temp = dungeons; temp.erase(temp.begin() + i); ret = max(ret, 1 + solution(..
문제 문제 읽기 해결 구현 chk 배열에 없어져야 할 블럭을 체크 update()로 게임판 업데이트, 없어지는 블럭의 수를 반환 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/17679 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include using namespace std; char bd[30][30]; bool chk[30][30]; void check(int x, int y) { if(bd[y][x] != 0 && bd[y][x] == bd[y + 1][x] && bd[y][x] == bd[y][x + 1] && bd[y][x] == bd[y + 1][x + 1]) chk[y][x] = ..
문제 문제 읽기 해결 구현 timetable을 내림차순 정렬, 역순으로 버스에 태움 콘은 가능한 늦게 타야 하므로, 막차에 태움 막차가 꽉 찰 경우, 꽉 차기 전에 타야 하므로 가장 마지막에 타는 사람보다 1분 빠르게 탑승 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/17678 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include using namespace std; string time2str(int time) { return (time / 60 < 10 ? "0" : "") + to_string(time / 60) + ":" + (time % 60 < 10 ? "0" : "") + to_..
문제 문제 읽기 해결 구현 list 사용하여 Cache 구현 find() 함수로 Cache에 값이 있는지 확인 Cache size가 0일때는 예외처리 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/17680 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include using namespace std; int solution(int cacheSize, vector cities) { if(cacheSize == 0) return 5 * cities.size(); list cache; int ans = 0; for(string city : cities) { transform(city.begin(), c..
문제 문제 읽기 해결 구현 multiset을 이용하여 중복 집합 저장 regex를 이용하여 특수문자 여부 확인 set_intersection, set_union을 이용하여 교집합, 합집합 구하기 소스코드 /* Prob https://programmers.co.kr/learn/courses/30/lessons/17677 Writer MyungSeung Kim(mskim9967@gmail.com) */ #include using namespace std; int solution(string str1, string str2) { multiset s1, s2; vector inter, uni; regex re("[a-zA-Z]+"); transform(str1.begin(), str1.end(), str1.be..
Comment