목록알고리즘/프로그래머스 (185)
쌓고 쌓다

https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 큰 틀에서 풀이 방법은 다음과 같다. 컬럼들의 총 개수를 가지고 만들 수 있는 조합을 구한다. (총 개수가 4라면 0, 1, 2, 3, 01, 02, 03, ...) 01은 0번째 컬럼 1번째 컬럼을 뜻함. 위에서 선택된 조합들을 가지고 컬럼값들을 모두 붙여본다. 붙여 만들어진 문자열이 기존에 만들어진 문자열이라면 유일성을 만족하지 않는것이다. 유일성을 검사했으니 이제 최소성도 검사한다..
https://school.programmers.co.kr/learn/courses/30/lessons/172927#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 모든 곡괭이를 드는 경우를 계산하여 풀면 된다! 코드로 보면서 이해하는게 좋을듯하다! 현재 코드에선 m[Key]로 Value를 찾았지만 C++ map 사용시 find는 Key로 찾는다면 이 함수는 Value를 반환해주는것이 아니기에 item->second로 Value에 접근해야한다. 전체 코드 #include #include #include #include using names..
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 #..