본문 바로가기
반응형

분류 전체보기1306

[C] typedef enum 활용 [C] 열거형 타입 enum 이란?을 먼저 읽고 오시는 것을 권장 드립니다. enum 타입은 typedef 키워드와 주로 함께 사용된다. typedef는 타입의 별칭을 생성하고 실제 타입 이름 대신 별칭을 사용할 수 있게 한다. #include typedef enum Season { SPRING, SUMMER, FALL, WINTER. }SEASON; int main(void) { SEASON birthday = FALL; printf("%d\n", birthday); } typedef로 명시적 타입을 사용하면서 버그와 에러를 줄일 수 있다. #include #include using namespace std; typedef enum Season { SPRING, SUMMER, FALL, WINTER, .. 2021. 9. 11.
[BOJ] 백준 1292 쉽게 푸는 문제 출처: https://www.acmicpc.net/problem/1292 Approach for 문을 연습하기 좋은 문제라고 생각한다. 주어지는 A, B의 범위가 1000 이하이므로 배열 크기 = 1000으로 만들어서 arr = [1 2 2 3 3 3 4 4 4 4 ...45, 45]와 같이 원소를 채워넣는다. 입력으로 받은 구간 [A, B] 합을 for문으로 탐색한 후 출력한다. O(N)의 시간으로 실행시간은 충분하다 ▶ 알고리즘 문제에서 시간 복잡도는 어떻게 하는걸까? ▶ 코딩 테스트 문제 풀 때, 시간 복잡도 계산해보기 C++ #include const int MAX_N = 1e3 + 5; int arr[MAX_N]; int A, B, ans, cnt, val; int main() { // freo.. 2021. 9. 3.
[C] 로그(log) 함수 C / C++ 언어에서 비트연산이나 코딩 문제를 풀다보면 수학 관련 문제를 푸는 경우가 있다. C언어에서도 #include 로 밑이 다양한 로그함수를 제공한다. 함수 오버로딩(Overloading)이 안되기 때문에 매개변수 자료형에 따라 함수명을 결정해야 한다. 밑이 e 인 로그 함수 (자연 로그) - double log(double n); - float logf(float n); - long double logl(long double n); 밑이 10 인 로그 함수 (상용 로그) - double log10(double n); - float log10f(float n); - long double log10l(long double n); 밑이 2 인 로그 함수 - double log2(double n); .. 2021. 9. 1.
[C++] 로그(log) 함수 C언어와 달리 C++은 함수 오버로딩이 가능하다. 그렇기에 자료형 상관없이 하나의 함수명으로 처리 가능하다. 필요한 헤더파일 #include 밑이 e 인 로그 함수 (자연 로그) - double log(double n); - float log(float n); - long double log(long double n); 밑이 10 인 로그 함수 (상용 로그) - double log10(double n); - float log10(float n); - long double log10(long double n); ; 밑이 2 인 로그 함수 - double log2(double n); - float log2(float n); - long double log2(long double n); [예제] "16"에 대.. 2021. 9. 1.
[BOJ] 백준 1157 단어 공부 출처: https://www.acmicpc.net/problem/1157 Approach 해당 문제는 alphabet[26]을 이용하면 해결할 수 있는 문제이다. ex) alphabet[0] = 3; // 'A' or 'a'가 3번 나타남. ex) alphabet[2] = 5; // 'C' or 'c'가 5번 나타남. ① 입력받는 문자열에 소문자/대문자가 모두 포함되는데 출력시에는 대문자로 하므로 대문자로 처리할 수 있도록 한다. * 아스키 코드 이용 아스키(Ascii) 코드 활용 아스키(Ascii) 코드 활용 프로그래밍 문제를 풀 때(PS)는 0 ~ 9 숫자를 문자로 표현하는 경우도 있고, 반대로 "A ~ Z" 혹은 "a ~ z" 문자를 정수형으로 이용하는 경우가 있다. 이때 이용하는 것이 아스키( z.. 2021. 8. 31.
개발자가 이직하는 이유 💻 개발자가 이직하는 이유 회사에서 받는 월급만으로 내 집 마련도 쉽지 않은 요즘 현실. 그럼에도 많은 사람들이 "월급쟁이"로 하루하루를 살아가고 있으며 퇴사 혹은 이직을 하게된다. 회사 생활을 하면서 우리를 힘들게 하는 것은 어떤 것이 있을까? - 노력한 결과와 맞지 않은 보상과 평가(대우) - 매일 반복되는 업무 생활의 연속 (Mannerism, Burn out) → "내가 이러려고 회사를 나오는가?" - 누가 와도 할 수 있는 잡업을 많이 하는 경우 - 너무 높은 업무 강도 (업무량) - 팀 분위기 (업무 호흡) - 많은 경험으로 상황판단력 있는 리더 - 빠른 판단을 통해 실질적으로 행동하는 선임(선배 · 사수) - 선임과 좋은 호흡으로 성장하는 동료 · 후배 - 퇴사하고 나며 더 이상 연락할 필요.. 2021. 8. 30.
[BOJ] 백준 1152 단어의 개수 출처: https://www.acmicpc.net/problem/1152 Approach getline(cin, str);을 통해 공백을 포함한 문자열을 입력받는다. 처음과 끝이 공백이 아닌 문자가 주어지고, 단어의 개수를 세는 것이라면 공백을 기준으로 구할 수 있다. 해당 문제에서는 공백으로 문자열을 시작할 수도 있고 끝날 수도 있기 때문에 이에 대한 처리가 필요하다. C++ #include #include using namespace std; string str; int ans; int main() { // freopen("input.txt", "r", stdin); getline(cin, str); // 공백만 주어지는 경우 제외 if (!str.empty()) { ans = 1; for (int .. 2021. 8. 27.
[BOJ] 백준 1094 막대기 출처: https://www.acmicpc.net/problem/1094 Approach 문제에서는 아래와 같이 정의하였다. 1. 가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다. 2. 만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다면, 위에서 자른 막대의 절반 중 하나를 버린다. 이제, 남아있는 모든 막대를 풀로 붙여서 Xcm를 만든다. 64 길이의 막대기가 주어지고 가장 짧은 막대의 길이는 점차 반으로 줄어들어 나갈 때, 32 → 16 → 8 → 4 → ... 해당 조합(?)으로 목표 길이를 구성하는 것이다. 23 = 16 + 4 + 2 + 1 인데, 아래와 같이 계산할 도 있다. #include int X, ans, len = 64; i.. 2021. 8. 26.
[BOJ] 백준 1085 직사각형에서 탈출 출처: https://www.acmicpc.net/problem/1085 Approach 직사각형 내부에서 경계선으로 가는 최단거리가 무엇일지 알면 쉽게 구현할 수 있는 문제이다. 좌표 (x, y)가 주어졌을 때 상 / 하 / 좌 / 우 움직여서 그 중 최소 거리를 구하면 된다. 상: h - y 하: y 좌: x 우: w - x C++ #include inline int min(int A, int B) { return A < B ? A : B; } int x, y, w, h, ans; int main(void) { // freopen("input.txt", "r", stdin); scanf("%d %d %d %d", &x, &y, &w, &h); ans = min(min(w - x, x), min(h -.. 2021. 8. 25.
[BOJ] 백준 1037 약수 출처: https://www.acmicpc.net/problem/1037 Approach 진짜 약수 의미를 고려하면 쉽게 구현할 수 있다. ex) A = 20 일 때, 20의 약수는 [1, 2, 4, 5, 10, 20] 이다. 이때, 진짜 약수는 [2, 4, 5, 10]인데 → (2 × 10) 혹은 (4 × 5) 여러 약수 조합 중에서 최소값과 최대값에 해당되는 원소로 곱해주면 된다. 주어지는 진짜 약수를 배열에 저장해서 정렬한 뒤, → sort() 이용 첫번째/마지막 원소가 최소값/최대값에 해당된다. 구현할 때, 진짜 약수가 1개인 경우도 주의해야 한다. ex) 9의 진짜약수는 [3] 이기 때문에 최소/최대값이 동일하다. (32비트 부호있는 정수 조건이므로 int 표현이 가능하다.) C++ #inclu.. 2021. 8. 24.
반응형