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

문제 https://www.acmicpc.net/problem/1451 1451번: 직사각형으로 나누기 첫째 줄에 직사각형의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 직사각형에 들어가는 수가 가장 윗 줄부터 한 줄에 하나씩 M개의 수가 주어진다. N과 M은 100보다 작거나 같은 자연수이 www.acmicpc.net 문제풀이 첫 번째 직사각형, 두 번째 직사각형이 될 수 있는 모든 경우를 구한다. 세 번째 직사각형은 첫 번째, 두 번째 직사각형을 만들 때 사용하지 않은 칸으로 만든다. Div1은 첫 번째 직사각형, Div2는 두 번째 직사각형, Div3은 세 번째 직사각형을 만드는 함수이다. 먼저 첫 번째 직사각형을 만든다. 이중 for문을 돌려 y는 0부터 N까지, x는 0부터 M까지 돌..

문제 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 문제풀이 시작 채널은 100이기 때문에 + or - 버튼을 일일이 누른 횟수를 answer에 저장한다. N길이를 구하고, N-1 길이의 첫수부터 N+1 길이의 마지막 수까지 돌면서 해당수를 판별한다. N의 최댓값은 500,000 이므로 최대로 돌려봐야 하는 수는 N+1 길이의 끝수이거나 1,000,000이다. 먼저 길이를 구하고, N번호까지 리모컨을 누르는 횟수가 answer..

문제 https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 문제풀이 나머지를 이용하면 쉽게 풀 수 있다. E는 1~15, S는 1~28, M은 1~19이다. 세 수는 0이 될 수 없으므로 각각 최댓값으로 나누고 1을 더한 값이 문제에서 요구한 값들이라면 year+1을 출력한다. 값이 다르면 year에 1을 더한다. 코드 #include using namespace std; int main() { int E, S, M = 0; cin >> E >> S >>..

문제 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 문제풀이 음수, 0, 양수를 나눠서 생각해야 하는 문제이다. 먼저 숫자들이 있으면 절댓값이 가장 큰 숫자들끼리 곱하여 더하는 것이 가장 큰 값을 구하는 과정이다. 따라서 음수는 오름차순으로 정렬하여 두 수를 곱하고 합 변수 sum에 더한다. 음수 한 개와 0이 남은 경우는 곱하여 0으로 만드는 것이 더 큰 값이므로 음수와 0은 모두 음수를 저장하는 우선순위큐에 입력한다. 양수도 비슷하게 하..

문제 https://programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 programmers.co.kr 문제풀이 홀수칸에는 '수'를, 짝수칸에는 '박'을 n까지 출력하면 된다. 코드 #include #include using namespace std; string solution(int n) { string answer = ""; for(int idx=0;idx

문제 https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 문제풀이 에라토스테네스의 체를 이용하여 구했다. n크기만큼의 bool형태 벡터를 만들고 모두 true로 둔다. idx는 1은 소수가 아니므로 2부터 n의 제곱근 값까지 돌면서 n까지 idx의 배수들을 false로 바꾼다. 2부터 n까지 돌면서 true값이 있으면 answer++를 해준다. 코드 #include #include #in..

문제 https://programmers.co.kr/learn/courses/30/lessons/12919 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니 programmers.co.kr 문제풀이 for문으로 seoul벡터를 확인하면서 Kim 문자열을 찾으면 바로 출력한다. 문자의 합은 +로 하고, idx는 string으로 변환하여 붙여서 return 한다. 코드 #include #include using namespace std; string solution(vec..

문제 https://programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 programmers.co.kr 문제풀이 문자열의 길이가 4 or 6이 아니면 false를 return 해야 한다. 아스키코드로 0은 48, 9는 57이다. 이 이외의 값은 문자이므로 false를 return 하면 된다. 코드 #include #include using namespace std; bool solution(string ..

문제 https://programmers.co.kr/learn/courses/30/lessons/12917 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr 문제풀이 algorithm의 sort를 이용해 내림차순으로 정렬하면 된다. (greater()) 코드 #include #include using namespace std; string solution(string s) { sort(s.begin(),s.end(),greater()); return s; }