728x90

알고리즘/PS - 프로그래머스 46

[프로그래머스 - C++] 단어 변환

https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 풀이 이 문제는 재귀함수를 이용해 구현한 DFS를 사용하여 풀이하였다. 이때 한개의 알파벳만 바꿔서 변환이 가능한지 확인하는 change()함수를 만들어서 계속 사용한다. slove()함수를 재귀로 호출하며 DFS를 구현한다. solve()함수 내에서는 현재 string이 target string과 동일한지 확인해 동일..

[프로그래머스 - C++] 불량 사용자

https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 풀이 아이디의 개수가 8개 이하로 매우 작기 때문에 브루트포스로 풀이가 가능한 문제이다. 이때 중복되는 경우를 어떻게 확인하지 비트마스킹이랑 set을 이용해서 구현해야 하나 생각했는데 string을 생성해 set에 넣어 중복을 제거하는 사람들이 있었다. string에 저장하는건 생각도 못한 아이디어 였는데 앞으로 요긴하게 쓸 듯하다. 자세한 내용은 주석 참고!!..

[프로그래머스 - C++] 괄호 변환

https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 풀이 문제 이해부터가 쉽지않다... 말이 너무 복잡하달까... 코테 푸는데에도 이젠 국어 능력이 중요해지는 시대이다... 그래서 문제의 설명을 한 단계씩 작성해 보았다. 막상 쓰고 보면 그냥 문제의 설명을 따라서 코드를 구현하기만 하면 되는 문제이다. #include #include #include using namespace std; //올바른 괄호인지 확인 b..

[프로그래머스 - C++] 더 맵게

https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 우선순위 큐를 사용하면 간단하게 해결 가능한 문제이다. 우선순위 큐에 스코빌 지수가 낮은것부터 정렬되도록 넣어준다. 우선순위 큐의 원소가 2개 이상이고 우선순위 큐의 top의 값이 K보다 작은 동안 loop를 반복한다. loop 내에서는 가장 작은 것 2개씩 pop하고 섞은 스코빌 지수를 계산하여 push한다. loop가 종료된 후 top의 값..

[프로그래머스 - C++] 튜플

https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 풀이 이 문제를 읽고 우선 원소의 개수 순서대로 정렬해야할 필요가 있다는 생각을 했다. 벡터에 {} 단위로 잘라서 길이와 해당 string을 저장한다. 이때 사용하는 벡터는 vector save 의 형태이다. (길이와 해당 문자열 저장해야하므로) 벡터를 오름차순 정렬한다. 벡터의 string을 순서대로 삭제하면..

[프로그래머스 - C++] 오픈채팅방

https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 풀이 ID를 key로, 닉네임을 value로 하여 Map을 사용하여 문제를 해결한다. map m1 를 생성하여 사용하였다. 이 문제의 풀이를 위해서 record를 두 번 읽는다. (한 번 읽어서 가능한 방법은 내 머리론 모르겠당ㅠ) Enter 또는 Change의 command의 경우에 ID와 닉네임 map의 값을 수정해 주기 위해 ID와 최종 닉네임을 매칭해서 ..

728x90
반응형