티스토리 뷰
반응형
소수 구하기를 생각하는 거 자체는 어렵지 않았는데 모든 수의 합을 어떻게 찾는지 좀 고민했던 문제
문제의 조건
1. 정수 배열이 하나 주어짐
2. 배열에서 숫자 3개를 뽑아서 더한 값이 소수이면 카운트 1증가
3. 주어진 배열에서 2번의 소수 카운트가 최대 몇 개 나오는지 구하기
#include <vector>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
bool isPrimeNum(int num)
{
if (2 > num)
return false;
//sqrt는 제곱근을 구해주는 함수
//자세한 설명은 링크 글 참고
int a = static_cast<int>(sqrt(num));
for (int i = 2; a >= i; i++)
{
if (0 == num % i)
return false;
}
return true;
}
int solution(vector<int> nums) {
int answer = 0;
sort(nums.begin(), nums.end());
for (int i = 0; nums.size() - 2 > i; i++)
{
for (int j = i+1; nums.size() - 1 > j; j++)
{
for (int k = j+1; nums.size() > k; k++)
{
int sum = nums[i] + nums[j] + nums[k];
if (isPrimeNum(sum))
answer++;
}
}
}
return answer;
}
https://notepad96.tistory.com/entry/C-%EC%86%8C%EC%88%98-%ED%8C%90%EB%B3%84%ED%95%98%EA%B8%B0
소수 구하기와 sqrt 함수에 관해서 쉽게 설명해놓은 블로그 글이 있어 이걸 많이 참고했습니다.
알고리즘 문제 풀면서 새로운 함수 많이 알게 되어서 좋네용~ㅋㅋ
알고리즘 문제 풀 때 2중 for문도 시간초과 때문에 피하는 경우가 많다 보니 3중까지는 생각도 못 했었는데
질문하기의 힌트 보고 해 봤는데 전부 통과되었습니다.
다음부터는 첨부터 무서워하지 말고 일단 젤 기본적인 방법부터 해 보자...
반응형
'알고리즘 문제 풀이' 카테고리의 다른 글
[C++] 프로그래머스 폰켓몬 풀이 (0) | 2021.09.25 |
---|---|
[C++] 프로그래머스 체육복 풀이 (0) | 2021.09.24 |
[C++] 프로그래머스 내적 풀이 (0) | 2021.09.24 |
[C++] 프로그래머스 음양 더하기 풀이 (0) | 2021.09.24 |
[C++] 프로그래머스 없는 숫자 더하기 풀이 (0) | 2021.09.24 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 컴퓨터사이언스
- 그리디
- 컴퓨터공부
- 백준
- c++
- C언어기초
- 스위프트플레이그라운드
- 아이패드
- 하드웨어
- 애플
- dp
- 문제풀이
- BFS
- 프로그래밍
- 영어공부
- 컴퓨터
- 너비우선탐색
- c언어
- 다이나믹프로그래밍
- 프로그래머스
- DFS
- 깊이우선탐색
- greedy
- 캐나다생활
- 해커랭크
- hackerrank
- 캐나다
- 기초
- 코딩공부
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함