
[프로그래머스] 3단계 - 이중우선순위큐
2024. 3. 9. 21:37
Algorithm Study
문제 설명 이중 우선순위큐가 할 연산이 매개변수로 주어질 때, 모든 연산을 처리한 후 [최댓값, 최솟값]을 return https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 문제 제목부터 주어진 우선순위 큐로 문제를 해결하는 방법이 있고, 그냥 벡터로 푸는 방법 2가지가 있다 우선 우선순위 큐로 푸는 방법은 최소값을 기준으로 하는 우선순위 큐와, 최대값을 기준으로 하는 우선순위 큐 2개가 필요하다 만일 I 명령어가 주어지면 최소값 큐와,..

[42Seoul] CPP Module 00
2024. 3. 8. 22:27
42 Seoul
설명에 들어가기 전 후기 42Seoul 프로젝트에 관한 포스팅을 하는것은 굉장히 오랜만인것 같다 사실 00번부터 09까지 있는 cpp module를 다 통과하면 그때 한번에 cpp module에 관한 글을 쓰려 했는데 이제서야 기나긴 CPP Module이 끝이 보이기 시작한다 04까지 끝내고 다른 과제들도 하다 오느라 이전의 나의 결심은 사실 변명 거리에 불과하다는 것은 알고있지만..... CPP Module이 끝나가는 기념으로 CPP Module 포스팅을 하려고 한다 사실 42Seoul의 CPP Module을 하기 전에 C++를 어느정도 다뤄봤어서 자신만만했지만, 역시 나는 우매함의 봉우리 위에 있었다 CPP Module을 통해 C++의 개념들을 훑고, 구현하고 응용할 수 있었던 좋은 과제이다 (98 ..

[프로그래머스] 2단계 - 카펫
2024. 2. 17. 21:54
Algorithm Study
문제 설명 카펫의 갈색 격자의 수와 노란색 격자의 수가 주어졌을 때 카펫의 가로, 세로 크기를 return https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 우선 가로 세로의 크기를 탐색하기 위해서 이중 for문을 두었다 겉의 for문은 가로의 길이고, 안의 for문은 세로의 길이이다 문제에서 가로의 길이가 세로의 길이보다 같거나 더 길다고 했으니, 안의 for문이 끝나는 조건은 세로의 길이가 가로의 길이보다 클 때이다 'brown ..

[프로그래머스] 2단계 - [1차] 뉴스 클러스터링
2024. 2. 16. 21:53
Algorithm Study
문제 설명 두 문장의 자카드 유사도 return https://school.programmers.co.kr/learn/courses/30/lessons/17677# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 처음에는 map으로 구현을 했다가 map의 키 값으로 합집합을 구하는 실수를 해버렸다 이후에는 map에 있는 값을 중복을 제거하면서 구현하려고 했으나 4, 5, 7, 9, 10, 11번 테케를 통과하지 못하였다 특히 str1 = "abc", str2 = "abbb" 인 경우를 해결하지 못하였다 위의 경우는 합집합이 { "ab, "bc"..

[백준] 4485 녹색 옷 입은 애가 젤다지?
2024. 2. 15. 22:37
Algorithm Study
문제 설명 링크가 잃는 금액을 최소로 하여 동굴 건너편까지 이동해야 할 때, 잃을 수 있는 최소 금액을 return https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 문제 풀이법 bfs를 통해 문제를 풀면된다 map을 담아놓을 배열 board, 그리고 최소 소지금을 담을 배열 arr가 필요하다 큐를 사용해 bfs를 돌리는 것은 똑같으나 주의해야할 조건문은 링크가 최소 금액으로 통과해야하기 때문에 매번 '최소'가 되는 값을 찾아서..

[프로그래머스] 2단계 - 완주하지 못한 선수
2024. 2. 15. 21:57
Algorithm Study
문제 설명 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주했을 때, 완주하지 못한 선수의 이름을 return https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 map을 사용하면 간단하게 풀 수 있다 우선 participant 벡터를 순회하면서 map에 이름을 key값으로 하여 value에는 1을 넣어준다 이후 completion 벡터를 순회하면서 map의 key에 해당하는 value를 0으로 한다 모든 처리를 끝냈을 때, m..

[프로그래머스] 2단계 - 가장 큰 수
2024. 2. 7. 19:02
Algorithm Study
문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 return https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 algorithm 헤더에 있는 sort 함수를 커스텀하면 된다 sort에 들어가는 cmp 함수에서 잘 비교하면되는데, 처음에는 string 끼리 비교가 되는지 모르고 무조건 int형으로 받아서 비교하려고 했었다 그러다보니 생긴 문제점이 3과 400을 비교할 때의 문제점이었는데, 계..

[프로그래머스] 2단계 - 피로도
2024. 2. 6. 19:18
Algorithm Study
문제 설명 유저가 탐험 할 수 있는 최대 던전 수를 return https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 만약 던전이 3개가 있다면 갈 수 있는 던전들은 123, 132, 213, 231, 312, 321이 있으므로 dfs를 통해 문제를 풀었다 dfs 메소드의 cnt는 현재 간 던전의 수이고, k는 현재 피로도이다 answer는 현재 간 던전의 수의 max값으로 매번 갱신한다 그리고 던전의 갯수만큼 for문을 돌면서 재귀를 ..

[프로그래머스] 2단계 - 기능개발
2024. 2. 6. 19:13
Algorithm Study
문제 설명 먼저 배포되어야하는 순서대로 작업의 진도가 적힌 정수 배열과, 각 작업의 개발 속도가 적힌 정수 배열이 주어질 때 각 배포마다 몇 개의 기능이 배포되는지 return https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 맨 앞부터 작업이 배포가 되어야하므로, queue를 사용하여 문제를 풀었다 queue는 pair로 first는 작업의 진도, second는 인덱스를 담았다 queue가 empty가 될때 까지 반복문을 돌게 설정..

[프로그래머스] 2단계 - 전화번호 목록
2024. 2. 3. 21:33
Algorithm Study
문제 설명 전화번호를 담은 배열이 있을 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false, 아니면 true를 return https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 전화번호가 들어있는 vector를 sort하면 인접한 번호끼리 정렬이 될 것이므로, sort를 한 뒤에 string의 find()를 통해 찾으면 편하고 빠르게 찾아낼 수 있다 for문을 돌면서 해당 문자열이 앞 인덱스의 문자열의 접두어인지 find()..