분류 전체보기

🔗 문제 링크 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 💡 문제 풀이 및 해석 만약 카드의 숫자가 N개라면 반드시 N-1번의 계산을 해야 한다. 여기서 가장 적은 수를 더해야 한다. 항상 가장 작은 두 집합을 더해준다. 이러면 결과적으로 가장 작은 수가 나온다. 만약, 큰 수가 들어가게 된다면, 그 수는 총 연산에서 이번 연산을 제외하고 반드시 한번 더 들어가야 하므로 최소값이 될 수 없다. ⭐️ 정답 코드 및 설명 #include #include using namespace std; i..
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 매 skill마다 board를 바꾸면, 시간복잡도가 너무 증가한다. 따라서 매번 바꾸는 방식은 안된다. 여기서 누적합 혹은 DP방식으로 풀어야 한다는 것을 알 수 있다. 여기서 2차원 배열에서의 누적합으로 풀어야 하는데, 풀이 방식은 각 모서리에 마킹을 해두는 것이다. Attack 기준으로 아래 코드에서도 볼 수 있듯이 4x4 사이즈에서는 5x5 사이즈의 임시 맵의 모서리에 마킹을 해둔다. MAP[r1][c1] -= degree; MAP[r1][c2 + 1] += degr..
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 각 차량번호마다 key를 부여한다. 이 때, map 자체에서 key에 대해서 오름차순으로 정렬한다. 이 key에 시간을 누적한다. 모든 시간이 누적되었을 때, 아직 입차되어 있는 상태인 자동차만 따로 시간을 더해준다. 시간에 대한 주차요금을 정산하여 answer에 넣어준다. ⭐️ 정답 코드 및 설명 #include #include #include #include using namespace std; vector solution(vector fees, vector recor..
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 일단 K진수를 구한다. 0을 기준으로 K진수를 split한다. split한 수들이 소수인지 판별하고, 소수이면 answer에 1을 더한다. ⭐️ 정답 코드 및 설명 #include #include #include #include #include using namespace std; bool isSosu(long n){ if(n==1||n==0) return false; for(int i=2; i=k){ string i = to_string(n%k); n/=k; kNum+=..
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 사용자마다 map를 사용해서 신고한 횟수가 아닌 신고 당한 ID를 모은다. 신고 당한 ID의 갯수 = 나를 신고한 사람이므로, 이 점을 이용해서 풀면 된다. ⭐️ 정답 코드 및 설명 #include #include #include #include #include using namespace std; map myReport; // 유저 : 해당 유저를 신고한 ID map user; // id : index vector solution(vector id_list, vector..
🔗 문제 링크 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 💡 문제 풀이 및 해석 주어진 단어중 정해진 갯수를 뽑는 조합문제이다. 조합으로 뽑은 다음에, 모음이 1개 이상, 자음이 2개 이상 들어갔는지 체크해주면 됩니다. ⭐️ 정답 코드 및 설명 #include #include #include #include using namespace std; int L, C; bool visit[15]; vector word; set answer; void input() { cin >> L >> C; word = vecto..
🍴 Repository 포크하기 Github의 받고 싶은 Repository로 이동한다. Fork 버튼을 누른다. 내 github에 Fork가 되면, git clone url을 통해 내 github에 있는 Repository를 내 local(컴퓨터)에 저장한다. 🧑🏻‍💻 변경할 점을 수정 혹은 추가하기 내가 merge하고 싶거나 수정하고 싶은 내용들을 내 local에 있는 폴더에서 변경한다. git checkout branch-name으로 작업할 branch로 이동한다. 새 브렌치에서 작업한다면, git checkout -b branch-name으로 만든다. 변경된 내용들을 git add -> git commit -> git push 해서 내 github에서 변경한다. 🚀 PullRequest 하여 me..
🔗 문제 링크 16120번: PPAP 첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다. www.acmicpc.net 💡 문제 풀이 및 해석 원형이 PPAP 인지 확인해야 하는 문제다. P -> PPAP 이므로 역으로 생각하면 PPAP -> P 가 된다고 생각할 수 있다. 그럼 문자열에서 앞에서부터 PPAP 인 부분을 P 로 바꿔가면서 O(N) 으로 탐색하면 된다. ⭐️ 정답 코드 및 설명 #include #include using namespace std; string sol(string str) { string temp = ""; int tempIndex = 0; for (int i = 0; i < str.siz..
RealTone
'분류 전체보기' 카테고리의 글 목록 (5 Page)