목록분류 전체보기 (370)
GitHubSeob

문제 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://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제풀이 https://www.acmicpc.net/problem/1780 1780문제와 거의 유사하게 풀었다. 1780번과 다른 점은 괄호의 유무와 칸을 분할할때 4등분을 하는점, 개수를 세는 것이 아닌 값을 출력하는 점 이다. 띄어쓰기 없이 입력받으므로 string으로 입력받고 끝자리의 0을 빼고 입력받는다. 0, 0부터 탐색을 시작한다. if (y != prev_y && (..

문제 https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net 문제풀이 첫 줄부터 끝줄까지 최솟값과 최댓값을 구한다. 이전 최솟값, 이전 최댓값 변수를 만들어 이전에 돌린 max, min값들을 저장한다. 이전 최솟값, 이전 최댓값, 현재 최솟값, 최댓값이 다르면 종이를 9 분할한다. 다 같아 반복문을 다 돌면 해당 종이에 적힌 값의 개수를 1 늘린다. int prev_y = y; int prev_x = x; int max_value = 0; ..

문제 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 문제풀이 중복된 수가 있을 수도 있다. 배열 A와 배열 B의 개수만큼 미리 Arr배열의 크기를 정하고, Arr배열에 다 입력받는다. 그다음 sort함수로 정렬하고 출력한다. 코드 #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NU..

문제 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..

문제 https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 문제풀이 3진법은 0, 1, 2로만 이루어진 숫자이다. 원래 n을 3으로 나누고 나머지를 적고, n을 더 이상 나눌 수 없을 때까지 반복한 뒤 나머지를 거꾸로 적어야 하지만 이 문제에서는 3진법 된 수를 뒤집어야 하므로 나머지가 나오는 대로 바로 벡터에 push 하면 된다. 앞뒤가 반전된 3진법이 나오게 되면,..