본문 바로가기

Programming Language13

[C & C++] const char * vs char * const const의 위치에 따라서 포인터가 상수인지 데이터가 상수인지 아니면 둘 다 상수인지 정해진다. 맨날 헷갈려해서 이참에 정리한다. char greeting[] = "Hello"; // 비상수 포인터, 비상수 데이터 char *p = greeting; // 비상수 포인터, 상수 데이터 const char *p = greeting; // 상수 포인터, 비상수 데이터 char * const p = greeting; // 상수 포인터, 상수 데이터 const char * const p = greeting; 규칙이 없어 보이지만, 자세히 보면 규칙이 있다. 바로 *을 기준으로 나눠 생각하면 된다. const 키워드가 * 왼쪽에 있으면 포인터가 가리키는 대상(데이터)이 상수이다. const 키워드가 * 오른쪽에 있.. 2023. 7. 27.
[Python] 1_000은 도대체 뭘까 백준을 풀면서 다른 사람들 코드를 보는 중 i = 1_000 또는 i = 1_000_000 같은 코드를 봤다. 바로 스택오버플로우에 찾아봤다. https://stackoverflow.com/questions/49837534/what-do-1-000-and-100-000-mean What do 1_000 and 100_000 mean? Since I've been learning Python, I've sometimes seen beginner examples that look like this: sum_sq = [None] * 1_000 I've bought three Python books and none have mentioned what the 1_000 and 100_000 stackoverflo.. 2022. 6. 14.
[Python] 리스트 복사하기 (일차원 & 다차원) 코드 우선 리스트를 복사하려면 일차원이냐 다차원이냐에 따라서 나뉜다. 일차원 리스트 복사하기 # 방법 1 list2 = list1.copy() # 방법 2 list2 = list1[:] # 방법 3 list2 = list(list1) 다차원 리스트 복사하기 import copy list2 = copy.deepcopy(list1) list1 = list2는? 보통은 list1의 요소를 list2에다가 복사하고 싶다면 list2 = list1하면 되는 것 아니냐고 생각할 것이다. 그러나 이렇게 리스트를 복사한다면 list2의 요소를 변경했을 때 list1의 요소도 변경된다. 확인해보자. # 일차원 배열 list1 = [1, 2, 3, 4] list2 = list1 list2[0] = 0 print(list1.. 2022. 3. 25.
[JavaScript] forEach와 map의 차이 서론 forEach와 map은 배열에 사용할 수 있는 함수이다. 공통점은 callback함수가 돌면서 배열 내 각 요소에 접근하여 주어진 함수를 실행한다는 것인데 여기까지만 보면 둘은 다를 바가 없어 보인다. 그럼 동일한 일을 하는 함수가 둘일 리 없지 않은가. 이 둘의 차이를 알아보자. forEach() The forEach() method executes a provided function once for each array element. MDN forEach 공식 문서에 따르면, forEach()는 배열 요소 각각에 접근해서, 주어진 함수를 실행한다고 한다. arr = [1, 2, 3, 4, 5]; arr.forEach((num) => console.log(num)); forEach()는 배열을 .. 2021. 12. 27.
[Python] input과 sys.stdin.readline의 차이 파이썬으로 백준 문제를 풀어본 사람이라면 가끔씩 많은 입력을 받는 문제를 풀 때 시간과 발생한 적이 있을 것이다. 이럴 때 input 대신 sys.stdin.readline을 사용하면 시간이 초과되지 않는다. 과연 이것은 무엇이길래 입력받는 속도를 향상할 수 있는 걸까? 답을 찾기 위해 우선 input과 sys.stdin.readline의 동작에 대해서 알아보도록 하자. input 공식 문서에 따르면, input 함수는: 1. 입력으로 들어오는 한 줄을 읽고, 2. 문자열로 변환하고, 3. 개행 문자를 제거한 뒤, 4. 값을 반환하는 형식으로 동작한다고 한다. 입력 하나를 받는데 4단계의 과정을 거치는 것이다. sys.stdin.readline 우선 sys와 stdin의 의미를 알아보도록 하자. sys .. 2021. 12. 10.
[Python] 삼항 연산자 문법 참일 때 값 if 조건 else 거짓일 때 값 위의 코드와 아래 코드는 동일한 의미이다. 간단한 if-else 코드를 한 줄로 줄여주니 코드가 간결해진다. if 조건: 참일 때 값 else: 거짓일 때 값 응용 삼항 연산자를 중첩하여 사용할 수 있다. 참일 때 값 if 조건 else 참일 때 값 if 조건 else 거짓일 때 풀어서 쓰자면 아래와 같다. if 조건: 참일 때 값 else: if 조건: 참일 때 값 else: 거짓일 때 값 조건이 적다면 삼항을 중첩하여 써도 괜찮지만, 아니라면 코드의 가독성이 떨어지기에 안 사용하는 것이 좋다고 생각한다. 참고: 1. https://wikidocs.net/20701 04. 삼항 연산자(Ternary operators) ### 1. 삼항 연산자(Tern.. 2021. 10. 22.