목록알고리즘/프로그래머스 (183)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/17680#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 LRU.. 작년 운영체제 수업 듣기전에 LRU가 뭔가싶어 따로 공부하고 풀어봐야지 했던 문제 우연찬게 이번학기에 운영체제 수강하고 딱 보니 뭔 소리인지 이해가 갔다.! LRU는 운영체제 시간에 배우고 간단한 기법이므로 구글링을 통해 학습해도 충분할듯하다! vector를 사용하여 LRU를 구현했다. 앞쪽에 있을수록 오래된 페이지이고, 뒤쪽에 있을수록 최근에 사용된 페이지로 가정하고..
https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 먼저, 무적권을 사용하지 않고 갈 수 있는 라운드까지 최대한 가본다. 이때 지나온 라운드들의 적군들의 수를 우선순위 큐에 넣어 관리한다. ( 뽑으면 최대 적군들의 수가 나올 수 있게 ) 라운드 최대한 갔더니 이제 보유한 병사로 전투를 할 수 없는 상황이 왔다. 이제. 무적권을 사용하는 것이다. 무적권의 사용 방법은 다음과 같다. 우선순위 큐에서 이제껏 전투해온 적군의 수가 많은 라운드..
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 벽 또는 장애물에 부딪힐때까지 while문으로 좌표를 이동하고 부딪혔을 경우에 최소이동으로 현재 위치에 도달을 했는지 확인한다. 현재 위치에 최소이동으로 도달했다면 최소이동 비용을 관리하는 배열을 갱신하고 그 위치에서의 상하좌우로 다시 부딪힐때까지 이동을 한다. 최종적으로 G 위치에 갱신된 값이 정답이다. 전체 코드 #include #include #include using names..
https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 주어진 순서대로 해시 함수를 동작하도록하면 되는 문제라 특별한 풀이 방법은 없다. 그런데 C++ 정렬 함수를 만들어 사용하는 방법을 알아야한다. 앞저네 포스팅한 내용이다. https://non-stop.tistory.com/242 참고하자! 전체 코드 #include #include #include #include using namespace std; int column = 1; bo..
https://school.programmers.co.kr/learn/courses/30/lessons/140107#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 점 찍을 수 있는 x 좌표를 돌며 해당 x 좌표에서 찍을 수 있는 최대 y 좌표를 구한다. 최대 y좌표가 7이 나왔다고해서 0, 1, 2, ..., 7을 찍을 수 있는건 아니다. k의 배수만 찍을 수 있으므로 최대 y 좌표에서 k로 나눈 몫만큼 찍을 수 있다. 단, 나누기에서 y좌표가 0인 경우는 포함되지 않으므로 나눌때마다 +1을 해주어야 한다. x의 좌표는 0부터 k배수만 ..
https://school.programmers.co.kr/learn/courses/30/lessons/159993#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 최단거리를 구하는 문제이다. DFS를 구하는 경우 모든 경로를 탐색해야하기에 시간초과가 날 수 있다. (물론 중간에 break를 걸면 될듯하다.) BFS로 최단 경로를 구하는 순간 그만 탐색하면 된다. 문제의 풀이 방법은 간단하다. 레버까지의 최단 거리를 구하고 레버로부터 다시 EXIT까지 최단 거리를 구하여 두개를 더해주면 된다. 전체 코드 #include #include #..
https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 board[i][j]에 만들 수 있는 가장 큰 정사각형 크기를 저장하는 방식으로 풀어나간다. 예를 들어 2x2 크기의 board가 있다고 하자. (1,1)의 위치에 만들 수 있는 가장 큰 정사각형의 변의 길이를 저장할 것이다. 이때, board[i][j]에 들어갈 값은 좌상단 대각선, 좌, 상단의 값중 제일 작은 값에 +1한 값이다. 3x3 board가 있다고 하자. (2,2) 위치에서..
https://school.programmers.co.kr/learn/courses/30/lessons/134240?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 먼저 생수를 가운데 무조건 배치를 하므로 answer에 "0"을 추가해준다. 이제 현재 answer의 앞뒤로 음식들을 배치할 것이다. 목표하는 정답의 안쪽부터 음식을 채워 나갈 것이므로 음식 배열을 도는 반복문은 배열 끝부터 돈다. 이때 음식이 /2로 나눠지는만큼 answer의 앞뒤에 음식의 인덱스 i를 붙인다. (왜냐 양쪽 선수 앞뒤로 서로 하나씩 먹을려면 2..