목록Programmers (190)
GitHubSeob
문제 https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 문제풀이 다트를 총 세 번 던진다. 다트는 0점부터 10점까지 맞힐 수 있다. S는 1 제곱, D는 2 제곱, T은 3 제곱이다. 상은 *또는 # 또는 없을 수도 있다. *은 이전 값과 현재 값에 *2를 해준다. #은 현재 값에 *-1을 해준다. 1. 숫자 먼저 분류해서 score벡터에 저장한다. 2. S, D, T를 구분하여 score에 제곱을 해준다. 3. 현재 값이 idx이고, *이 있다면, score[idx-1]과 score[idx] 값에 *2를 한다. 4. 현재 값이 idx이고, #이 있다면, score[idx]에 *-..
문제 https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 문제풀이 비트 마스크를 이용하여 푸는 문제이다. arr1 배열과 arr2 배열의 or연산을 해서 두 배열중 하나라도 1이 있으면 해당 자리는 1이 된다. 그다음 해당 숫자가 1이면 #을, 0이면 공백 1칸을 출력하는 문제이다. arr1 [idx] |= arr2 [idx]을 하여 비트 or연산을 arr1배열에 집어넣는다. for (idx2 = n - ..
문제 https://programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 문제풀이 배열의 값을 divistor로 나눈 나머지가 0이면 answer에 push 하면 된다. 입출력 예에서 return부분을 보면 항상 정렬이 되어있으므로 처음에 arr배열을 정렬해야 한다. answer을 return 하기 전에 비어있을 경우 -1을 push 한다. 코드 #include..
문제 https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 문제풀이 연달아 같은 숫자를 출력하지만 않으면 중복된 숫자는 있을 수 있다. 먼저 첫 번째 숫자를 answer에 push 한 뒤, answer의 마지막 원소와 배열의 인덱스 값을 확인하면 된다. 만약 같으면 넘어가고, 다를 경우에만 answer에 push 한다. 코드 #include #include using namespace s..
문제 https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 문제풀이 길이가 짝수 일 경우 가운데 2글자를, 홀수 일 경우 한 글자만 출력하면 된다. 짝수 일 경우는 size/2 -1번째 값과, size/2의 값을 더하여 출력하면 되고, 홀수 일 경우는 size/2번째 값만 출력하면 된다. 코드 #include #include using namespace std; string ..
문제 https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 문제풀이 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 윤년이므로 2월은 29일까지 있다. 월과 요일을 나타내는 벡터를 따로 만들면 코드가 더 간결해진다. 월과 일을 입력받으면 1월 1일과 차이나는 일 수를 구하고, 7로 나눈 나머지를 구해 해당하는 요일을 출력한다. 코드..
문제 https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 문제풀이 문제 자체는 어렵지 않은데 띄어쓰기 기준 string 자르기, 사전 순 정렬이 조금 귀찮았다. vectorname = { "SI", "CONTENTS", "HARDWARE", "PORTAL", "GAME" }; table의 직업군이 이 순으로 나오기 때문에 따로 name이라는 벡터를 만들었다. 점수가 같을 경우 사전 순으로 정렬해야 되기 때문에 편..
문제 https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 문제풀이 숫자 두 개를 뽑아서 더하는 문제다, 더해서 같은 수가 나올 때 중복은 return에 포함되지 않는다. 숫자를 idx=0부터 크기-1만큼 반복하고, idx2는 idx값에 +1을 하여 크기만큼 반복한다. 이러면 반복문에서 같은 덧셈을 할 경우는 없다. 그러나 중복된 수는 answer에 저장이 된다. 중..
문제 https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 문제풀이 부서를 최대로 지원하려면 적은 금액부터 지원해주면 된다. 따라서 정렬을 하고 예산에서 지원해줘야 하는 금액을 차감하면서 answer값을 늘려주면 된다. 예산은 -가 될 수 없으므로 예산과 지원해줘야 하는 금액이 같거나 예산이 더 큰 경우만 실행하도록 조건을 건다. 코드 #include #include using namespace std; int sol..