목록분류 전체보기 (38)
멋쟁이 개발자의 블로그
문제: Julka는 어제 유치원에서 다음 수수께끼를 풀면서 교사를 놀라게 했다. Klaudia와 Natalia는 함께 사과 10개를 가지고 있지만 Klaudia는 Natalia보다 2개 더 많은 사과를 가지고 있다. 두 소녀는 몇 개의 사과를 가지고 있는가? Julka는 생각 없이 대답했다. Klaudia는 6개의 사과를 가지고 있고 Natalia는 4개의 사과를 가지고 있습니다. 교사는 Julka의 대답이 우발적이지 않은지 확인하기로 결정하고 과제에 사과의 수를 늘릴 때마다 수수께끼를 반복했다. Julka는 항상 올바르게 대답했다. 놀란 교사는 Julka의 '연구'를 계속하고 싶었지만 너무 많은 숫자로 인해 스스로 퍼즐을 빨리 풀 수 없었다. 유치원 교사를 돕고 해결책을 제안하는 프로그램을 작성하라. ..
문제: 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어. 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력: 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100보다 작다. 출력: 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. #include int main(void) { int arr[9]; int max = 0; int index; for (int i = 0;i < 9;i++) { scanf_s("%d", &arr[i]); if (arr[i..
문제: N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력: 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력: 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. #include int main(void) { int n, max = -1000000, min = 1000000, num = 0; scanf_s("%d", &n); for (int i = 0;i < n;i++) { scanf_s("%d", &num); if (max = num) min = num; } prin..
문제: 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 입력: 첫..
1. 리스트 응용 1-1. 리스트에 요소 추가하기: append, extend, insert - 리스트.append(요소): 리스트 끝에 요소 추가 - 리스트.extend(리스트): 리스트 끝에 다른 리스트 연결하여 확장 - 리스트.insert(인덱스, 요소): 특정 인덱스에 요소 추가 (리스트도 추가 가능) 1-2. 리스트에서 요소 삭제하기: pop, remove - 리스트.pop(): 마지막 요소 삭제 후 반환 - 리스트.pop(인덱스): 인덱스의 요소 삭제 후 반환 - 리스트.remove(값): 인덱스가 아닌 특정 값 찾아서 삭제 1-3. 그 외 - 리스트.index(값): 값의 인덱스 구함 (여러 개일 경우제일 처음 찾은 인덱스) - 리스트.count(값): 값의 개수 구함 - 리스트.revers..