본문 바로가기

코딩테스트!(프로그래머스 & 백준)145

코딩테스트 -- n + 1 카드게임 - (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제요약! 1~n까지의 숫자가 적힌 카드를 무작위로 섞은후, 먼저 n/3장을 뽑아 가진채 게임을 시작합니다 각라운드에 2장씩 추가로 뽑아, 주어진 코인을 소모하여 손으로 들고 올 수 있을때, 손에 가진 카드중 2장의 카드의 합을 N+1로 만들어 다음 라운드를 진행 할 수 있습니다. *합을 n+1을 만들지 못하거나, 섞여있는 n장의 카드뭉치를 모두 소모하면 게임을 종료됩니다. 단순한 카드게임이지만 코드로 구성하려니.. 머리속이 복잡해 지네요.. 그럼 바로 코드 시작! 우선 진행하며 2가지 방법으로 시도해보았는데.. 2024. 3. 14.
코딩테스트 -- [PCCP 기출문제] 2번 / 석유 시추 - (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제요약! 위 그림처럼 석유가 묻혀있는 땅에 시추관을 세로로 심을때 가장 많이 시추할 수 있는 석유의 양을 찾는 문제였습니다! 땅의 세로 가로가 500으로 제한되어있어, 꼬아서 생각할 필요없이 석유의 양과 열을 탐색을 통해 구해, 풀어주었습니다. 그럼 코드 시작! 저는 먼저 탐색을 통해 석유의 양과 석유덩어리들이 포함하는 열을 찾아주기로 하였습니다. 이미 land벡터의 값들이 0과 1로 석유가 있는지 없는지로 입력을 받아주었기에 visit벡터에 복사해주고, 기본적인 정보를 저장해주며 시작해주었습니다. int .. 2024. 3. 13.
코딩테스트 -- 주사위 고르기 - (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제요약! A 와B가 n개의 주사위 중 절반을 선택하여 굴릴때, 굴려나온 모든 수의 합의크기로 B보다 A가 크도록, A가 이길수 있는 확률이 가장 높은 주사위의 선택 리스트를 구하는 문제! 특이한 점은 각 면에 일반적인 숫자들이 아닌 리스트의 수들로 각 주사위마다 숫자가 다르다는 점! 상당히 까다로운 문제처럼 보입니다... 그래도 풀어서 생각해보면 1. N개의 주사위중 절반 선택 2. 선택한 주사위들을 굴려 승리할 확률 구하기 이렇게 2가지로 그렇게 복잡하진 않아 보입니다. 경우의 수는 되게 많아 보이지만.... 2024. 3. 12.
코딩테스트 -- 등대 - (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제요약! 여러개의 지점들이 있고 각 지점들이 서로 연결되어있는 뱃길이 있다고 하였을때 두 지점중 한 지점에는 등대가 무조건 켜져 있어야 할때 최소로 켜질 등대의 수를 구하는 문제! 이것 외에는 신경쓸 부분은 없어 보였습니다. 문제를 보고 가장 먼저 생각난 경우는 1. 가장 많이 연결된 지점부터 키면서 탐색한다 2. 가장 끝부분 단말노드로 부터 탐색을 진행하며 등대를 켜준다 이렇게 두가지의 방법을 생각 할 수 있었습니다. 1번의 경우는 약간의 예외가 발생할 수 도 있을거라 생각하여 저는 2번의 방법으로 진행하.. 2024. 3. 6.
코딩테스트 -- 호텔 대실 - (프로그래머스 / C++) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제요약! 시간대별로 호텔 대실 시간들을 리스트로 주고 최소객실수를 구하는 문제입니다. 시간은 { {"09:10", "10:10"},{"10:20", "12:20"}} 식으로 주어지기에 분단위로 배열을 할당해 주어 풀어주면 쉽게 풀 수 있었습니다. +++ 예약시간들도 하루동안의 내용들이고 - 예약 시각이 자정을 넘어가는 경우는 없다 라는 조건도 포함되어 있어 예외없이 풀어낼 수 있었습니다. 그럼 바로 코드 시작! 아래처럼 먼저 하루 전체 1440분의 배열을 생성해주엇습니다. int solution(vector.. 2024. 3. 6.
[ 백준 2096 ] 내려가기 (C++) 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 문제! N줄에 0 이상 9 이하의 숫자가 세 개씩 적혀 있다. 내려가기 게임을 하고 있는데, 이 게임은 첫 줄에서 시작해서 마지막 줄에서 끝나게 되는 놀이이다. 먼저 처음에 적혀 있는 세 개의 숫자 중에서 하나를 골라서 시작하게 된다. 그리고 다음 줄로 내려가는데, 다음 줄로 내려갈 때에는 다음과 같은 제약 조건이 있다. 바로 아래의 수로 넘어가거나, 아니면 바로 아래의 수와 붙어 있는 수로만 이동할 수 있다는 것이다. 이 제약 조건을 그림으로 나타내어 보면 다음과 같다. 별.. 2023. 6. 14.