[프로그래머스 C++] 숫자 블록
[프로그래머스 C++] 숫자 블록
https://school.programmers.co.kr/learn/courses/30/lessons/12923
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결전략
구현
처음 시도한 코드
#include <vector> using namespace std; long long Cal(long long k) { for(int i = 2; i * i < k; i++) { if(k % i == 0){ return k / i; } } return 1; } vector<int> solution(long long begin, long long end) { vector<int> answer(end+1, 0); for(long long i = begin; i <= end; i++){ answer[i] = Cal(i); } return answer; }
vector<int> answer( end + 1, 0 );
- 위와 같이 vector<int> answer 배열을 만들고 대입하는 방식을 사용하면 연산을 2번 해야 한다.
- 그래서 미리 만들고 대입하는 방식이 아닌 push_back이나 emplace_back으로 계산된 값을 바로 넣어주어 생성하는게 시간을 줄이는 방법이다.
정답 코드
#include <vector> using namespace std; long long Cal(long long k) { long long result = 1; for(long long i = 2; i * i <= k; i++) { if(k % i == 0){ result = i; if (k / i <= 10000000) { result = k / i; break; } } } return result; } vector<int> solution(long long begin, long long end) { vector<int> answer; for(long long i = begin; i <= end; i++) { if (i == 1) answer.emplace_back(0); else answer.emplace_back(Cal(i)); } return answer; }
'⭐ 코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 C++] 등굣길 (0) | 2024.04.02 |
---|---|
[프로그래머스 C++] 조이스틱 (0) | 2024.04.01 |
[프로그래머스 C++] 혼자서 하는 틱택토 (1) | 2024.03.22 |
[프로그래머스 C++] 가장 긴 팰린드롬 (0) | 2024.03.20 |
[프로그래머스 C++] 이모티콘 할인행사 (0) | 2024.03.18 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스 C++] 등굣길
[프로그래머스 C++] 등굣길
2024.04.02[프로그래머스 C++] 등굣길 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 동적계획법 Dynamic Programming 정답코드 #include #include using namespace std; int solution(int m, int n, vector puddles) { vector v(n + 1, vector(m + 1, 0)); for (int i = 0; i < puddles.size(); i++) { v[puddle… -
[프로그래머스 C++] 조이스틱
[프로그래머스 C++] 조이스틱
2024.04.01[프로그래머스 C++] 조이스틱 https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 그리디 Greedy Algorithm 결국 못 풀고 다른사람 풀이를 봤다… 좌우 이동 생각하기 까다롭네… 정답 코드 #include #include #include #include using namespace std; int solution(string name) { int answer = 0; // 상하 조작 횟수 int CursorMove = nam… -
[프로그래머스 C++] 혼자서 하는 틱택토
[프로그래머스 C++] 혼자서 하는 틱택토
2024.03.22[프로그래머스 C++] 혼자서 하는 틱택토 https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 정답코드 #include #include #include using namespace std; int solution(vector b) { int answer = 1; int SumBingGo_O = 0; // O 전체 빙고 수 int SumBingGo_X = 0; // X 전체 빙고 수 int black = 0; // O 개수 int w… -
[프로그래머스 C++] 가장 긴 팰린드롬
[프로그래머스 C++] 가장 긴 팰린드롬
2024.03.20[프로그래머스 C++] 가장 긴 팰린드롬 https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 글자 자리를 한칸씩 이동하며 글자 자리 기준으로 양옆을 검사한다. ex. "abcdcba" a 자리 검사 b 자리 검사 홀수 가정: b기준으로 양옆의 a, c가 같은지 검사. 같다면 계속해서 양옆으로 가면서 검사. int left = i-1, right = i+1; if (s[left] != s[right]) 짝수 가정: b기준으로 왼쪽의 a…
댓글을 사용할 수 없습니다.