본문 바로가기

C++ 코딩 문제 풀이151

[Programmers] 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 주어지는 숫자들을 하나씩 순차적으로 더하거나 뺀 결과값을 구하는 재귀 함수를 만들어 문제를 해결한다. 구현 [스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~ 더보기 #include using namespace std; void Add(const vector& v, const int& t, int& cnt, int i, int sum) { if (i == v.s.. 2024. 1. 7.
[Programmers] 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 전화번호 목록에 있는 모든 번호들을 해시 테이블(hash table)에 저장한 다음, 각각의 전화번호들에 대해 앞에서부터 1, 2, $\cdots, $ 전체 글자 만큼의 접두사에 해당하는 전화번호가 해시 테이블에 존재하는지 확인한다. 구현 해시 테이블의 역할을 수행할 컨테이너로 std::unordered_map 형식의 컨테이너를 활용하였다. [스포 주의] 아래 '더보기'를 누.. 2024. 1. 7.
[Programmers] [1차] 뉴스 클러스터링 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 주어지는 두 개의 문자열에 대해 각각, 두 글자씩 끊어 읽었을 때 모두 알파벳으로 이루어져 있으면 끊어 읽은 문자열의 등장 횟수를 기록한다. 이때 두 개의 알파벳으로 이루어진 문자열이 등장하는 횟수 중 최솟값은 교집합에 해당하며, 최댓값은 합집합에 해당하는 값임에 착안하여 자카드 유사도를 계산한다. 구현 풀이 1) 두 글자씩 끊어 읽은 문자를 STL의 컨테이너를 활용해 기록하.. 2024. 1. 6.
[Programmers] 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 먼저 배포되어야 하는 프로세스 순으로 남은 작업 날짜를 계산하여 마지막으로 배포한 프로세스들 중 가장 작업 날짜가 긴 것보다 작으면 해당 프로세스와 함께 배포, 그렇지 않다면 함께 배포할 수 없다. 구현 프로세스별로 필요한 작업 날짜를 계산할 때, 남은 작업량을 작업 속도로 나눈 뒤 올림 계산을 하는 점과 가장 마지막에 배포한 프로세스들 중 작업 날짜가 가장 긴 것을 저장하여.. 2024. 1. 5.
[Programmers] 의상 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 코니가 가진 의상의 종류가 $i$ 개이고 각 종류별 의상 수를 $n_i$ 라고 하면, 종류별로 입지 않는 경우와 하나를 택해서 입는 경우가 존재할 수 있다. 이때, 모든 종류를 입지 않는 한 가지 경우를 제외하면 코니가 서로 다른 조합으로 옷을 입을 수 있는 경우의 수 $c$ 는 $$c = \prod_{i} n_{i} - 1$$ 이다. 구현 std::vector 형식으로 주어.. 2024. 1. 2.
[Programmers] 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 $m \times n$ 크기의 행렬 $A$와 $n \times l$ 크기의 행렬 $B$에 대해, 두 행렬의 곱 $C=AB$ 는 $m \times l$ 크기의 행렬이며, $$c_{ij}=\sum_{k=1}^{n} a_{ik} b_{kj}$$ 이다($a_{ik}, b_{kj}, c_{ij}$는 각각 행렬 $A, B, C$의 요소). 구현 [스포 주의] 아래 '더보기'를 누르면 코.. 2024. 1. 2.