프로그래머스

알고리즘/구현

프로그래머스 - 방문 길이

문제 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이동 경로 중 처음 방문한 간선의 개수를 구하는 문제였다. 문제 풀이 처음에는 구조체를 만들어서 구조체 [11][11] map을 만들고, 각 LRUD마다 반대 방향의 RLDU 체킹을 일일이 넣어줬는데 너무 복잡하고 어느 부분이 틀린지도 잘 모르겠어서 다시 풀었다. 다시 풀면서 3차원 배열로 변경하고 nx, ny와 x,y의 LR / RL / UD / DU 계산을 (di+2)%4로 해서 간단하게..

알고리즘/그리디

프로그래머스 - 예산

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 예산 내에서 최대한 많은 부서에 금액을 지원하도록 하는 문제였다. 문제 풀이 오름차순으로 정렬한 후 그리디를 이용해 풀었다. #include #include #include #include #include using namespace std; int solution(vector d, int budget) { int answer = 0; sort(d.begin(),d.end()); fo..

알고리즘/구현

프로그래머스 - 소수 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3개 숫자의 합이 소수인지 판별하는 문제였다. 문제 풀이 에라토스테네스의 체를 이용했고 nums가 최대 50개로 작은 수여서 완전탐색으로 풀었다. #include #include using namespace std; int isPrime[3001]; void calPrime(){ fill(isPrime, isPrime+3000,1); isPrime[0] = 0; isPrime[1] = 0; ..

알고리즘/구현

프로그래머스 - 다단계 칫솔 판매

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그래프에서 부모를 거슬러 올라 가면서 판매액을 계산하는 문제였다. 문제 풀이 해시맵에 이름과 node를 키밸류로 저장해서 풀었다. 중간에 시간 초과가 났는데 부모에게 보낼 돈이 0일 경우 break 걸어주니 해결됐다. 최대 100000 * 10000 에서 100000 * 5 (최대 amount는 100*100, 10000이고 10씩 나누기 때문에 5번) 만큼 걸리도록 줄였다. #include..

알고리즘/구현

프로그래머스 - 행렬 테두리 회전하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 행렬에서 주어진 부분의 테두리를 회전시키는 문제였다. 문제 풀이 100 x 100 크기의 행렬이 최대였고 최대 회전수가 10000이었기 때문에 40 * 10000을 했을 때 400000이어서 마음 편하게 반복문을 사용했다. #include #include using namespace std; vector map; void printMap(int row, int col){ for(int..

알고리즘/탐색

프로그래머스 - 로또의 최고 순위와 최저 순위

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77484# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 로또의 최고 순위와 최저 순위를 찾는 문제였다. 문제풀이 lottos와 win_nums를 정렬하고 진행했다. lottos 값이 0일 경우에는 jocker 값을 증가하고 나머지 경우에 대해서는 win_nums와 같은지 투포인터를 이용해 풀었다. maxRank와 minRank를 if문으로 일일이 비교하기 싫어서 rank 배열을 만들고 for문을돌려서 결정했다. #include #include ..

알고리즘/DFS BSF

프로그래머스 - 이모티콘 할인행사

문제 https://school.programmers.co.kr/learn/courses/30/lessons/150368?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dfs를 이용해 완전탐색을 해서 푸는 문제였다. 문제 풀이 emoticon의 개수가 최대 7, user의 개수가 최대 100, 할인 개수도 4개여서 완전탐색이 가능했다. (4^7 * 100을 해도 160만 정도밖에 나오지 않음) #include #include using namespace std; int sale[4] = {10,20,30,40}; vector u; ..

알고리즘/구현

프로그래머스 - 뒤에 있는 큰 수 찾기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr stack 을 이용해 자신의 뒤에 있으면서 가장 가까운 큰 수를 찾는 문제였다. 문제 풀이 처음에는 완전탐색을 이용해 풀었는데 4개의 케이스에서 시간 초과가 나왔고, 입력값이 최대 100만인 상황에서 break 조건을 걸어서 시간 초과를 해결해도 출제 의도와는 다른 것 같아서 다른 방법으로 풀었다. 자신의 뒤에서 가장 가까운 큰 수를 찾는 문제였기 때문에 stack을 사용했다. number..

hahihi
'프로그래머스' 태그의 글 목록 (3 Page)