티스토리 뷰
□문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
□제한 사항
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
□입출력 예시
nums | result |
[1,2,3,4] | 1 |
[1,2,7,6,4] | 4 |
□주어진 코드
□완성 코드1
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// nums_len은 배열 nums의 길이입니다.
int solution(int nums[], size_t nums_len) {
int answer = -1;
//int arrSize = (nums_len * (nums_len - 1) * (nums_len - 2)) / ((nums_len - 1) * (nums_len - 2));
//int* addNum = (int*)malloc(sizeof(int) * nums_len);
int addNum = 0;
int count = 0;
int index = 0;
int ifNum=0;
for (int i = 0; i < nums_len; i++) {
for (int j = i + 1; j < nums_len; j++) {
for (int z = j + 1; z < nums_len; z++, index++) {
addNum = nums[i] + nums[j] + nums[z];
printf("%d ", addNum);
for (int index = 2; index < addNum; index++) {
if (addNum % index == 0) {
ifNum=0;
break;
}
else ifNum=1;
}
if (count == 1) count++;
}
}
}
answer = count;
return answer;
}
□코드1 분석
□완성 코드2
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// nums_len은 배열 nums의 길이입니다.
int solution(int nums[], size_t nums_len) {
int answer = -1;
//int arrSize = (nums_len * (nums_len - 1) * (nums_len - 2)) / ((nums_len - 1) * (nums_len - 2));
//int* addNum = (int*)malloc(sizeof(int) * nums_len);
int addNum = 0;
int count = 0;
int index = 0;
int ifNum=0;
for (int i = 0; i < nums_len; i++) {
for (int j = i + 1; j < nums_len; j++) {
for (int z = j + 1; z < nums_len; z++, index++) {
addNum = nums[i] + nums[j] + nums[z];
printf("%d ", addNum);
for (int index = 2; index < addNum; index++) {
if (addNum % index == 0) {
ifNum=0;
break;
}
else ifNum=1;
}
if (count == 1) count++;
}
}
}
answer = count;
return answer;
}
□코드2 분석
'[코테] > [Programmers Lv1]' 카테고리의 다른 글
[Programmers] Lv1_3진법 뒤집기 (C/C++) (0) | 2021.06.03 |
---|---|
[Programmers] Lv1_약수의 개수와 덧셈 (C/C++) (0) | 2021.06.03 |
[Programmers] Lv1_로또의 최고 순위와 최저 순위 (C/C++) (0) | 2021.06.02 |
[Programmers] Lv1_음양 더하기 (C/C++) (0) | 2021.06.02 |
[Programmers] Lv1_내적 (C/C++) (0) | 2021.06.01 |
댓글
공지사항
최근에 올라온 글
TAG
- 코스프로
- groomedu
- CosPro
- Java
- 자바
- groom
- lv1
- YBM기출
- c언어
- C++
- YBM
- c언어 기출문제
- 코딩테스트
- 1급
- 연습문제
- COSPRO 2급
- 구름에듀 기출문제
- Cos Pro
- lv2
- 구름 기출문제
- cospro기출문제
- programmers
- C
- 구름에듀
- 알고리즘
- 배열
- 프로그래머스
- cospro기출
- 배열활용문제
- 기출문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함