-
[SISS/C언어 스터디] 25-1학기 2주차 스터디 - 스택/큐, 추가 과제25-1 SISS/C스터디 2025. 3. 23. 20:45
[SISS/C언어 스터디] 25-1학기 2주차 스터디 - 스택/큐, 추가 과제 인증 화면 캡쳐 : 2주차 (3/17~3/23) 프로그래머스 지정 2문제 (스택/큐)- https://school.programmers.co.kr/learn/courses/30/lessons/12909- https://school.programmers.co.kr/learn/courses/30/lessons/42584
올바른 괄호
#include <stdio.h> #include <stdbool.h> #include <stdlib.h> // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. bool solution(const char* s) { int count = 0; for (int i = 0; s[i] != '\0'; i++) { if (s[i] == '(') { count++; // 왼쪽 괄호 } else { count--; // 오른쪽 괄호 } // 오른쪽 괄호의 개수가 왼쪽보다 많으면 잘못된 입력 if (count < 0) { return false; } } return count == 0; }
올바른 괄호
#include <stdio.h> #include <stdbool.h> #include <stdlib.h> // prices_len은 배열 prices의 길이입니다. int* solution(int prices[], size_t prices_len) { // 동적 메모리 할당 (prices_len 크기의 정수 배열) int* answer = (int*)malloc(prices_len * sizeof(int)); for (size_t i = 0; i < prices_len; i++) { answer[i] = 0; // 초기값 for (size_t j = i + 1; j < prices_len; j++) { answer[i]++; // 가격이 떨어지지 않은 기간 증가 if (prices[j] < prices[i]) { // 가격이 떨어지면 중단 break; } } } return answer; }
11660
- 누적 합
#include <stdio.h> #include <stdlib.h> #define MAX_N 1025 int arr[MAX_N][MAX_N]; // 원본 배열 int prefix_sum[MAX_N][MAX_N]; // 누적 합 배열 int main() { int N, M; scanf("%d %d", &N, &M); // 표 입력 및 누적 합 배열 생성 for (int i = 1; i <= N; i++) { for (int j = 1; j <= N; j++) { scanf("%d", &arr[i][j]); prefix_sum[i][j] = arr[i][j] + prefix_sum[i-1][j] + prefix_sum[i][j-1] - prefix_sum[i-1][j-1]; } } // 쿼리 처리 for (int i = 0; i < M; i++) { int x1, y1, x2, y2; scanf("%d %d %d %d", &x1, &y1, &x2, &y2); // 구간 합 int result = prefix_sum[x2][y2] - prefix_sum[x1-1][y2] - prefix_sum[x2][y1-1] + prefix_sum[x1-1][y1-1]; printf("%d\n", result); } return 0; }
'25-1 SISS > C스터디' 카테고리의 다른 글
[SISS/C언어 스터디] 25-1학기 4주차 스터디 - 완전 탐색, 추가 과제 (0) 2025.04.03 [SISS/C언어 스터디] 25-1학기 3주차 스터디 - 완전 탐색, 추가 과제 (0) 2025.03.30 [SISS/C언어 스터디] 25-1학기 1주차 스터디 - 정렬, 추가 과제 (0) 2025.03.15