분류 전체보기 97

[프로그래머스] 할인 행사 C++ (Lv.2)

https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 해시(key-value) 문제였습니다. 📝 문제 풀이 1. 10일 연속으로 할인하는 제품과 수량을 담을 map 객체 생성 ⭐️ 2. discount.size() - 9 만큼 for문을 돌면서 bool 타입의 변수로 회원가입을 할 수 있는지 체크 3. 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치한다면 answer++ 4. 10일 중 첫째 날의 수량은 1 감소시키고 다음 ..

[프로그래머스] 귤 고르기 C++ (Lv.2)

https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 구현 문제였습니다. 📝 문제 풀이 1. kind 벡터에 귤의 종류의 개수를 카운트 2. 서로 다른 종류가 최소가 되도록 귤을 담아야 하므로 kind 벡터를 내림차순 정렬 (종류가 많은 귤부터 담기 위해) 3. kind 벡터의 귤을 순서대로 담다가 현재 담아야 할 귤의 개수가 k 크거나 같아지면 for문 종료 👩🏻‍💻 C++ 코드 #include #include #include #de..

[프로그래머스] 연속된 부분 수열의 합 C++

https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 투 포인터 문제였습니다. 📝 문제 풀이 1. 구하려는 부분 수열의 처음 위치 s와 마지막 위치 e를 각각 0으로 초기화 2. 부분 수열의 합을 sequence[0]으로 초기화 (sequence[0]은 부분 수열 합의 최솟값) 3. 부분 수열의 길이는 sequence.size() + 1로 설정 (부분 수열 길이의 최댓값은 sequence.size()이기 때문에) 4. sum < k ➡..

[프로그래머스] 리코쳇 로봇 C++

https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 bfs 문제였습니다. 📝 문제 풀이 1. 게임 보드판의 로봇의 처음 위치와 목표 지점을 찾아 각각 start, goal 객체에 저장 2. bfs 수행 로봇의 처음 위치와 이동 횟수 0을 큐(queue)에 삽입 로봇의 처음 위치는 방문 체크 visited[start.first][start.second] = true; 현재 위치에서 상, 하, 좌, 우로 이동했을 경우 벽이 아니거나 (..

[프로그래머스] 모두 0으로 만들기 C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/76503?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 dfs 문제였습니다. 📝 문제 풀이 1. 연산을 위한 weight 벡터를 생성하여 a 벡터와 동일하게 초기화 2. info 벡터에 점들의 연결 정보를 저장 3. 루트 노드를 0으로 시작하여 dfs 수행 (루트 노드의 부모 노드는 자기 자신) 현재 노드와 연결된 노드가 부모 노드가 아니라면 dfs 수행 더 이상 탐색할 노드가 없다면 (리프 노드에 도달했다면) ⭐️..

[프로그래머스] 110 옮기기 C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/77886?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 월간 코드 챌린지 시즌2 문제였습니다. 📝 문제 풀이 1. 문자열 str에서 110"을 모두 제거하고 acc 문자열에 삽입 (ex. acc = "110110110 ...") 2. "110"이 제거된 문자열에서 가장 뒤에 있는 0의 인덱스 찾기 가장 뒤에 있는 0의 인덱스를 찾지 못했다면 (1로만 이루어져 있으면) 문자열 앞에 acc 삽입 찾았다면 가장 뒤에 있는..

[프로그래머스] 전력망을 둘로 나누기 C++ (Lv.2)

https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 bfs 문제였습니다. 📝 문제 풀이 1. 송전탑의 전선 정보를 info 벡터에 저장 2. 전선을 하나씩 끊어가면서 bfs 수행하여 하나의 전력망의 송전탑 개수를 계산 끊은 전선의 양쪽 송전탑은 방문 체크 visited[v1] = true; visited[v2] = true; 방문하지 않은 송전탑이면 cnt++ 3. 두 전력망의 차이가 answer보다 작다면 answer 갱신 👩🏻‍💻 ..

[프로그래머스] 피로도 C++

https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 dfs 문제였습니다. 📝 문제 풀이 1. 탐험한 던전 수를 0으로 시작하여 dfs 수행 2. 탐험하지 않은 던전이고 해당 던전의 최소 필요 피로도가 k보다 작거나 같으면 해당 던전 탐험 (dfs 수행) 3. dfs 수행이 끝난 던전은 다른 경우에서 재탐험할 수 있도록 방문 체크 해제 visited[i] = false 3. 현재 탐험 던전 수가 이전 탐험 던전 수보다 크면 cnt 갱신 ..

[프로그래머스] 모음 사전 C++ (Lv.2)

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 완전 탐색 문제였습니다. 글쓴이는 dfs를 사용하여 풀이했습니다. (프로그래머스 다른 사람 풀이보면 다른 좋은 방법도 많으니까 참고하시면 좋을 것 같아요!) 📝 문제 풀이 1. ""을 시작으로 dfs 수행 2. "AEIOU" 문자열을 순회하면서 dfs 수행 3. dfs 수행할 때마다 cnt++ (사전에서의 단어 위치) ⭐️ 4. 현재 단어가 사전에서 몇 번째인지 탐색하려는 단어와 같..

[프로그래머스] 여행 경로 C++

https://school.programmers.co.kr/learn/courses/30/lessons/43164?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 dfs 문제였습니다. 📝 문제 풀이 1. "ICN" 공항에서 출발하는 항공권이면 path 벡터에 "ICN" 삽입 2. dfs 수행 항공권을 사용했다는 의미로 visited[idx] = true path 벡터에 도착 공항 삽입 주어진 항공권을 다 사용했다면, 가능한 경로 벡터 paths에 path 벡터 삽입 사용하지 않은 항공권이고, 현재 항공권의 도착 공항과 사..

반응형