본문 바로가기

C18

[백준] 다리놓기, 1010, C 실패 DP로 풀어서 시간초과가 안될것이라 생각했는데, 시간 초과로 Fail.. 이항 정리 방식 + DP 로 접근하니 시간 초과 안됨 DP로 풀 수 있는 방식은 이항 정리로도 접근 가능함을 배웠음 #include #include // 포인트 // 바로 DP 형식으로 푸니 시간초과 이슈를 해결할 수 없었음, 함수 : GetConnectCaseByDynamicProgramming // 이항 정리 방식으로 푸니 시간 초과 이슈를 해결할 수 없었음, 함수 : GetConnectCaseByBinomialTheorem // 이항 정리 방식에 DP를 더해 배열 값을 사용하니 시간 초과 이슈를 해결할 수 있었음 typedef unsigned long long int uint64_t; uint64_t GetConnectC.. 2022. 11. 25.
[백준] A/B, 1008, C 포인트 부동 소수점에 대해 이해하고 있나? float32_t (4byte), float64_t (8byte)의 연산 결과 차이를 알고 있나? #include // 포인트 // 8byte 자료형을 사용하면 10-9 자릿수까지 정확하게 표현가능 // 4byte 자료형 사용 시, 10-8 자릿수부터 연산 결과 이상해짐 // 4byte -> 32bit, 1bit 는 부호, 8bit 는 지수(소숫점), 23bit는 가수 // 이 방식은 IEEE에서 표준으로 제안한 방식 (IEEE 754 Standard for Floating-Point Arithmetic) typedef long int int64_t; typedef double float64_t; typedef int int32_t; typedef float f.. 2022. 11. 22.
[백준] 행렬 덧셈, 2738, C 포인트 다차원 배열 값 입력 받기 #include typedef unsigned int uint16_t; typedef signed char int8_t; int main() { uint16_t u16i = 0, u16j = 0; uint16_t arstArr1[100][100] = { 0 }, arstArr2[100][100] = { 0 }; uint16_t u16Row = 0, u16Column = 0; uint16_t arstArrSum[100][100] = { 0 }; scanf("%d", &u16Row); scanf("%d", &u16Column); for (u16i = 0; u16i != u16Row; ++u16i) { for (u16j = 0; u16j != u16Column; ++u16j).. 2022. 11. 21.
[백준] 알람 시계, 2884, C/C++ 포인트 24시 -> 0시로 넘어가는 경우만 잘 체크하면 됨 특별히 어려울게 없는것 같은데 정답 비율이 38%인게 의아함 #include typedef int int32_t; int main() { int32_t s32Hour = 0, s32Minute = 0; const int32_t s32DefaultOffsetMinute = 45; const int32_t s32MinutePerHour = 60; const int32_t s32HourPerDay = 24; int32_t s32AlarmHour = 0, s32AlarmMinute = 0; while (1) { scanf_s("%d", &s32Hour); scanf_s("%d", &s32Minute); if ((s32Minute - s32DefaultO.. 2022. 11. 20.
[백준] 곱셈, 2588, C/C++ 포인트 수 자리의 자연수에서 1, 10, 100의 자릿수에 해당하는 값을 뽑아낼 수 있는가? 답안 코드 작성은 쉽지만, 최적화할 요소가 꽤 많은 문제로 느껴짐. 고민해보지 않았다. #include typedef unsigned long int uint32_t; int main() { uint32_t u32FirstVal = 0, u32SecondVal = 0; scanf("%d", &u32FirstVal); scanf("%d", &u32SecondVal); uint32_t u32a = 0, u32b = 0, u32c = 0; u32a = u32SecondVal % 10; u32b = (u32SecondVal / 10) % 10; u32c = u32SecondVal / 100; uint32_t u32d =.. 2022. 11. 19.
[백준] 윤년 2753, C/C++ 포인트 연도가 400년 이전일 때의 반례를 생각하는 것. #include typedef unsigned char uint8_t; typedef unsigned long int uint32_t; int main() { uint8_t u8RetVal = 0; uint32_t u32year = 0; scanf_s("%d", &u32year); if(u32year % 4 == 0) { if(u32year % 100 != 0) { u8RetVal = 1; } else if(u32year > 399 && u32year % 400 == 0) { u8RetVal = 1; } else { u8RetVal = 0; } } else { u8RetVal = 0; } printf("%d \n", u8RetVal); } 2022. 11. 19.