Fascination
article thumbnail
[C++] BOJ 1769 : 3의 배수
CODE/BOJ 2021. 10. 3. 02:12

[문제] 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net [문제 풀이] - 한자리씩 char 배열에 저장 - 배열에 저장된 수들을 int형으로 바꿔서 더함 - 더한 값이 한자리 수가 될 때까지 위의 과정을 반복 - 더한 값이 한자리 수 중 3, 6, 9가 아니면 3의 배수가 아니므로 NO를 출력하고 조건을 만족하면 YES를 출력 [코드] #include #include #include using namespace std; void cal(char num[]); int main() { cin.sync_with_std..

article thumbnail
[C++] BOJ 13706 : 제곱근
CODE/BOJ 2021. 10. 3. 00:33

[문제] 13706번: 제곱근 첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다. www.acmicpc.net [문제 풀이] - 풀이 1) sqrt 라이브러리 사용 - 풀이 2) 이분탐색법 사용 > mid의 제곱이 원래 값과 같아질 때까지 반복시킴 [코드] - python: 백준 통과 코드 import math a=int(input()) print(math.isqrt(a)) - C++: 백준 통과 X --> 로직 문제인 것 같다는 결론이 많음 #include #include using namespace std; int main() { int n; cin>>n; int low = 1; int high = n; int mid; while (1) {..

article thumbnail
[C++] BOJ 10829 : 이진수 변환
CODE/BOJ 2021. 10. 3. 00:07

[문제] 10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net [문제 풀이] 풀이 1) 스택을 사용하여 2로 나눈 나머지를 저장하고 이를 pop하여 거꾸로 출력함 풀이 2) 재귀 호출을 사용하여 나머지가 0 혹은 1이면 출력하고 그렇지 않으면 재귀호출 시행 [코드] - 풀이 1 #include #include using namespace std; int main() { stack s; long a; cin>>a; do{ s.push(a%2); a/=2; }while(a!=0); do{ cout

article thumbnail
[C++] BOJ 2941 : 크로아티아 알파벳
CODE/BOJ 2021. 10. 2. 23:46

[문제] 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net [문제 풀이] - 크로아티아 알파벳의 첫 글자를 기준으로 그 다음 글자를 확인하여 변수 i를 증가시켜 자리를 이동한 후 총 개수를 셈 [코드] #include using namespace std; int main() { string str; int count = 0; cin>>str; for (int i = 0; i

article thumbnail
[C++] BOJ 15953 : 상금 헌터
CODE/BOJ 2021. 10. 2. 23:43

[문제] 15953번: 상금 헌터 첫 번째 줄에 제이지가 상상력을 발휘하여 가정한 횟수 T(1 ≤ T ≤ 1,000)가 주어진다. 다음 T개 줄에는 한 줄에 하나씩 제이지가 해본 가정에 대한 정보가 주어진다. 각 줄에는 두 개의 음이 아닌 www.acmicpc.net [문제 풀이] - 각 회차 별 등수를 입력받아 해당 구간에 속하는 금액을 출력 - 등수를 입력할 때 본선에 진출하지 못한 순위와 순위권이 아닌 것을 예외처리 해야함 [코드] #include using namespace std; unsigned int cal(unsigned int a, unsigned b); int main() { unsigned int n, a=0, b=0; cin.sync_with_stdio(0); cin.tie(0); ..

article thumbnail
[C++] BOJ 5086 : 배수와 약수
CODE/BOJ 2021. 10. 2. 23:38

[문제] 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net [문제 풀이] - a가 b의 약수일 때, b는 a로 나누어 떨어짐 - a가 b의 배수일 때, a는 b로 나누어 떨어짐 [코드] #include #include using namespace std; string trans(unsigned int a, unsigned int b); int main() { unsigned int a, b; cin.sync_with_stdio(0); cin.tie(0); do { cin >> a >> b; if(a==0&&b==0) return 0; cout

article thumbnail
[C++] BOJ 10867 : 중복 빼고 정렬하기
CODE/BOJ 2021. 9. 19. 01:44

[문제] 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net [문제 풀이] - 동적할당으로 배열 생성 - 수 입력받기 - sort()로 정렬 - 출력하면서 이전 인덱스와 같은 숫자면 출력 X [코드] #include #include using namespace std; int main() { int tc; cin>>tc; int *a = new int[tc]; for(int i=0;i>a[i]; } sort(a,a+tc); cout

article thumbnail
[C++] BOJ 10814 : 나이순 정렬
CODE/BOJ 2021. 9. 19. 01:40

[문제] 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net [문제 풀이] - List 구조체 선언 후 - List 형식을 가지는 vector 생성 - compare 사용하여 sort()로 나이순 오름차순 정렬 [코드] #include #include #include using namespace std; struct List{ int age; string name; }; bool compare(const List &i, const List &j){ return i.age>tc; vector person; List lis..

article thumbnail
[C++] BOJ 2693 : N번째 큰 수
CODE/BOJ 2021. 9. 19. 01:34

[문제] 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net [문제 풀이] - sort()사용하여 오름차순으로 정렬 - 3번째로 큰 수는 크기가 10인 배열에서 인덱스 7을 가짐 - 인덱스 7인 원소를 출력 [코드] #include #include using namespace std; int main() { int a[10]; int tc; cin>>tc; for(int i=0;i

article thumbnail
[C++] BOJ 2959 : 거북이
CODE/BOJ 2021. 9. 17. 13:02

[문제] 2959번: 거북이 첫째 줄에 거북이가 생각한 네 양의 정수 A, B, C, D가 주어진다. (0 num; v[i]=num; i++; } cout