728x90

전체 글 148

[프로그래머스/Lv1] - 소수 찾기

programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 에라토네스의 체를 이용해야 효율성 채점을 통과할 수 있다. 에라토네스의 체는 아래와 같은 구조로 코드를 구현한다. 배열을 생성하여 초기화한다. 2부터 시작해서 특정 수의 배수에 해당하는 수를 모두 지운다. (자기 자신은 지우지 않는다.) 2부터 시작하여 지우지 않은 수를 출력한다. 더보기 #include #include using namespace s..

[프로그래머스/Lv1] - 문자열 내 마음대로 정렬하기

programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 간단히 char 를 int로 생각하여 비교하면 될 문제지만 만약 같다면 사전순으로 정리하는 문제이다. 사전순으로 정리하는 것에서 조건을 정확히하면 쉽게 풀 수 있다. 더보기 #include #include #include using namespace std; vector solution(vector strin..

[프로그래머스/Lv1] - 나누어 떨어지는 숫자 배열

programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 더보기 #include #include #include using namespace std; vector solution(vector arr, int divisor) { vector answer; vector::const_iterator iter = arr.begin(); while (iter != arr.e..

[프로그래머스/Lv1] - 수박수박수박수박수박수?

programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 programmers.co.kr UTF8에서 한글은 3 Byte를 사용한다는 것을 알고 있어야 풀 수 있는 문제 더보기 #include #include #include #include char* solution(int n) { // 리턴할 값은 메모리를 동적 할당해주세요. char* answer = (char*)malloc(sizeof(char*) * (n*3) + 1)..

[백준] 2447 - 별 찍기 - 10

www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 구글링을 통해 해답을 참고하여도 바로바로 이해하지 못 했던 문제, 분할 정복으로 생각하여 풀어야했다. 비어있는 공간의 규칙은 (1 == (row / N) % 3 && 1 == (col / N) % 3) 이다. 그 이외의 좌표에는 '*'이 찍힌다. 중단점을 이용해 함수의 수행과정을 확인해야 이해할 수 있었다. 더보기 #include void PrintStar(const int row, ..

[프로그래머스/Lv1] - 예산

programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 간단히 정렬 후 budget 보다 커지면 loop를 멈추는 식으로 계산할 수 있다. 더보기 #include #include #include #include using namespace std; int solution(vector d, int budget) { int answer = 0; const int dSize = d.size(); for (int lhs = 0; lhs < ..

[프로그래머스/Lv1] - 문자열을 정수로 바꾸기

programmers.co.kr/learn/courses/30/lessons/12925 코딩테스트 연습 - 문자열을 정수로 바꾸기 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니 programmers.co.kr memcpy()만을 이용해 코드를 구현하였고, atoi등을 이용하면 편리할 것이다. 더보기 #include #include #include #include int convert(char ch) { switch (ch) { case '1': return 1; case '2': return 2; case '3': return 3; case..

[프로그래머스/Lv1] - 내적

programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 간단한 for()를 이용한 계산식 문제 더보기 #include #include #include // a_len은 배열 a의 길이입니다. // b_len은 배열 b의 길이입니다. int solution(int a[], size_t a_len, int b[], size_t b_len) { int ..

[프로그래머스/Lv1] - 음양 더하기

programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 더보기 #include #include #include // absolutes_len은 배열 absolutes의 길이입니다. // signs_len은 배열 signs의 길이입니다. int solution(int absolutes[], size_t absolutes_len, bool signs[], size_t signs_len) { int answer ..

[프로그래머스/Lv1] - 두 개 뽑아서 더하기

programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 목록 중에서 한 개씩 뽑고 같은 index가 아니라면 더하는 것이다. 중복제거 또한 해야함 을 써도 되지만 문제가 C만을 사용해서 쓰라는 것 같길래 for()문 2개를 활용한 오름차순 정렬을 사용했는데, 통과가 된다. 실제적으로 속도를 높이며련 퀵 정렬, 합병 정렬, 힙 정렬을 쓰자. 더보기 #include #include #i..

반응형