BOJ - 1978 소수 찾기
·
코딩테스트
해결방법소수를 찾는 함수 알고리즘을 이용하여 구한다.소수는 2 이상의 자연수이고, 1과 자기 자신을 제외하고는 다른 수에 의해 나누어 떨어지지 않는 수를 의미한다.즉, 어느 수가 소수인지 확인하려면 그 수의 제곱근까지만 소수를 나누어보면 된다.만약 어떤 수의 제곱근값까지 도달하기 전까지 나누어진다면 그 수는 소수가 아닌 것이다. 정답 코드#include #include using namespace std;bool isPrime(int num){ if (num > N; vector array(N); for (int i = 0; i > array[i]; } for (int i = 0; i
BOJ - 2231 분해합
·
코딩테스트
해결방법입력받은 수인 N과 그 분해합이 일치하는 가장 작은 경우를 찾는 문제이다. 무식하지만 1부터 수에 자리수를 더한 값이 N과 일치하는지를 찾아서 일치하는 값이 나올때까지 반복문을 돌리는 방식으로 해결했다. 정답 코드#include using namespace std;int factorize(int num){ int sum = num; while (num > 0) { sum += num % 10; num /= 10; } return sum;}int main(){ int N; cin >> N; int answer = 0; for (int i = 1; i
BOJ - 25756 방어율 무시 계산하기
·
코딩테스트
해결방법문제 자체는 여러번 반복하면 풀 수 있지만, 최적화가 필요했다. endl이 출력 버퍼를 비우는 과정에서 시간을 소모하고, 입출력 과정에서 시간을 소모하는 문제를 해결하기 위해 endl 대신 '\n'을 넣고,ios::sync_with_stdio(false);cin.tie(nullptr);을 추가하여 입출력 연산을 빠르게 해주었다.  정답 코드#include #include #include using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N; double V = 0; cin >> N; vector A(N); for (int i = 0; i > A[i]; } ..
BOJ - 26004 HI - ARC
·
코딩테스트
해결방법Vector 템플릿을 이용하여 배열을 만들어주고, 문자열 중 H, I, A, R, C를 count배열에 하나씩 집어넣고, min_element()를 이용하여 가장 count배열 중 작은 count값을 출력한다. (HIARC중 가장 작은 값이 HIARC라는 이모지를 만들수 있는 최대 개수이기 때문) 정답 코드#include #include #include using namespace std;int main(){ int N; cin >> N; vector S(N); for (int i = 0; i > S[i]; } int count[5] = { 0 }; for (int i = 0; i
메모리 계층구조
·
Programming/기타
폰 노이만은 CPU, 메모리, 프로그램을 핵심 구성요소로 삼는 폰 노이만 구조를 발표했다.이론상 튜링-완전한 구조이고, 컴퓨터에서 작업을 하고 다른 작업을 시킬 때 프로그램만 교체하면 된다는 장점으로 인해 대부분의 컴퓨터는 이 구조를 따르고 있지만, CPU와 메모리 간의 데이터 전송 속도 차이로 인해 병목 현상이 발생한다는 문제가 발생하게 되었다.이러한 병목 현상을 해결하기 위해 탄생한 것이 바로 메모리 계층 구조이다. 메모리 계층 구조메모리 계층 구조는 컴퓨터 시스템에서 데이터 접근 속도와 저장 용량의 균형을 맞추기 위해 설계된 구조이다.이 구조는 필요에 따라 여러 종류의 메모리를 계층적으로 배치하여 효율적인 데이터 관리를 가능하게 하는데, 레지스터 - 캐시 - 메모리 - 스토리지의 4단계로 구성하는 ..
BOJ - 30802 웰컴 키트
·
코딩테스트
해결방법티셔츠는 남아도 상관 없기 때문에 (필요한 티셔츠의 수 + 묶음 - 1)을 묶음으로 나누어서 사이즈별로 필요한 묶음의 수를 구한다.펜은 나눗셈과 나머지 연산을 해주면 된다. 정답 코드#include using namespace std;#define SIZE 6int main(){ int N, TShirt[SIZE], T, P; cin >> N; for (int i = 0; i > TShirt[i]; } cin >> T >> P; int tshirt_bundle = 0; for (int i = 0; i