
1. 변수의 자료형 1) 정수형 변수 - char, short, int, long 2) 실수형 변수 - float, double 2. 증가, 감소 연산자 1) ++num : 값을 1 증가 후, 속한 문장의 나머지를 진행 2) num++ : 속한 문장을 먼저 진행한 후, 값을 1 증가 3) --num : 값을 1 감소 후, 속한 문장의 나머지를 진행 4) num-- : 속한 문장을 먼저 진행한 후, 값을 1 감소 #include int main(void) { int num1=10; int num2=(num1--)+2; printf("num1 : %d\n", num1); printf("num2 : %d\n", num2); return 0; } // num1 : 9 // num2 : 12 후위 증가(선 연산,..

프로그래밍 언어란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어를 의미한다. 컴파일러의 역할은 무엇인가? 프로그래밍 언어로 작성한 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역하는 역할을 한다. 더불어 이렇게 번역하는 일 자체를 가르켜 '컴파일(Compile)'이라고 한다. ※기계어 : 컴퓨터가 이해할 수 있는 0과 1로 구성된 언어체계 기존의 UNIX라는 운영체제는 '어셈블리(assembly) 언어'라는 low-level언어로 만들어져서 하드웨어의 의존도가 높았다. 이식성이 낮았다. 이러한 단점을 해결하기 위해서 어셈블리 언어의 low-level적 특징을 지니면서도 이식성도 좋고, 익히기도 쉬운(?) 언어가 필요했는데 C언어가 이러한 요구조건을 모두 만족한다. C언어의 장점! 1..

자료구조? 자료구조에서는 데이터를 표현하고 저장하는 방법에 대해서 설명한다. '데이터의 저장'을 담당하는 것이 바로 자료구조이다. 넓은 의미에서 int형 변수, 구조체의 정의, 배열, 파일의 구조 등이 자료구조에 포함이 된다. 데이터를 저장할 때 리스트로도 가능하고 트리로도 가능하다면 어떠한 것이 더 효율적일 것인가? -> 각각의 특성을 정확히 이해해야 한다. 자료구조가 '데이터의 표현 및 저장방법'을 뜻한다면, 알고리즘은 이렇듯 표현 및 저장된 데이터를 대상으로 하는 '문제의 해결 방법'을 뜻한다. 자료구조가 결정되어야 그에 따른 효율적인 알고리즘을 결정할 수 있다. : 자료구조와 알고리즘은 다른 과목임에도 불구하고 매우 많은 연관성을 지니고 있다. 잘 동작하고 좋은 성능을 보이기 위해서는 자료구조와 ..
1. divmod(숫자1, 숫자2) 숫자1를 숫자2로 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수이다. print(divmod(9, 2)) # (4, 1) 2. int(문자열, 몇 진수) int함수는 문자열로 되어있는 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수로만 알았는데 10진수가 아닌 진수로 표현된 문자열을 10진수 값으로 반환해주기도 한다. # 2진수 -> 10진수 print(int('101', 2)) # 5 # 16진수 -> 10진수 print(int('A', 16)) # 10 3. zip(*iterable) 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수 print(list(zip([1, 2, 3], ['A', 'B', 'C']))) # [(1, 'A'), (2, ..
코딩 테스트에서 구현이란 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다. 완전 탐색 : 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 파이썬에서 리스트의 크기 제약 대체로 코딩 테스트에서는 128 ~ 512MB로 메모리를 제한하는데 알고리즘 문제 중 때로는 수백만 개 이상의 데이터를 처리해야 하는 문제가 출제되기도 함. 데이터의 개수(리스트의 길이) 메모리 사용량 1,000 약 4KB 1,000,000 약 4MB 10,000,000 약 40MB 일반적인 기업 코딩 테스트 환경에서는 파이썬으로 제출한 코드가 1초에 2,000만 번의 연산을 수행한다고 가정하면 크게 무리가 없다. 시간 제한이 1초이고, 데이터의 개수가 100만..
1025. Divisor Game https://leetcode.com/problems/divisor-game/ Divisor Game - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제를 푸는데 전혀 감이 오지 않아서 고민하다가 바로 Discussion으로 넘어갔다. class Solution: def divisorGame(self, n: int) -> bool: return n % 2 == 0 1. Top-Down 방식 1) n이 짝수일 때 Alice가 ..
338. Counting Bits https://leetcode.com/problems/counting-bits/ Counting Bits - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com # 나의 코드 class Solution: def countBits(self, n: int) -> List[int]: answer = [] for i in range(n+1): answer.append(bin(i)[2:].count('1')) return answer # Ti..
다이나믹 프로그래밍 : 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법이다. - 중복되는 연산을 줄이자! - 메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있다. - DP의 대표적인 예시 : 피보나치수열 다음 조건을 만족할 때 사용할 수 있다. 1) 큰 문제를 작은 문제로 나눌 수 있을 때 2) 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일할 때 메모이제이션(Memoization) 기법 : 다이나믹 프로그래밍을 구현하는 방법 중 한 종류로, 한 번 구한 결과를 메모리 공간에 메모해두고 같은 식을 다시 호출하면 메모한 결과를 그대로 가져오는 기법 - 캐싱(Cashing)이라고도 함. 메모이제이션 기법은 어떻게 구현? ->..
- Total
- Today
- Yesterday
- 코딩테스트
- 비트연산자
- dp
- 파이썬 나머지
- 동적 계획법
- unsigned
- leetcode
- 파이썬
- 파이썬 몫
- 해시
- 다익스트라 알고리즘
- 이것이코딩테스트다
- ascii
- scanf
- 기본 자료형
- dynamic programming
- C언어
- sizeof
- 자료구조
- 내장 함수
- C
- 비트
- 에러
- dijkstra algorithm
- Python
- 이코테
- 프로그래머스
- 열혈 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |