본문 바로가기

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_000stackoverflow.. 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의 의미를 알아보도록 하자.syssys는 시.. 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.
[Python] 사칙연산 연산자 연산자 해설 + 더하기 - 빼기 / 나누기 * 곱하기 // 몫 % 나머지 ** 제곱 참고: 1. https://includestdio.tistory.com/16 [Python] 사칙연산을 위한 7가지 연산자 1. 파이썬(Python) 사칙연산을 위한 7가지 연산자 + 덧셈 - 뺄셈 * 곱하기 ** 거듭 제곱 / 나누기 // 나누기 연산 후 소수점 이하의 수를 버리고, 정수 부분의 수만 구함 % 나누기 연산 후 몫이 아닌 나 includestdio.tistory.com 2. https://wikidocs.net/1153 4.1. 산술 연산자 ### 산술 연산자 (Arithmetic Operators): a = 10, b = 20, c = 3 이라 가정한다. | Operator | Description | .. 2021. 10. 22.
[Python] dictionary / 프로그래머스 숫자 문자열과 영단어 Python에는 Dictionary 라는 자료형이 있다. dictionary = {key : value, key1 : value1} 위에 같은 구조로 이루어져 있는데, 마치 사전같이 영어 "hello"가 한국어로는 "안녕"인 것처럼, key라는 변수가 value라는 값을 가지는 것이다. 이런 형태를 연관 배열(Associative array) 또는 해시(Hash)라고 한다. 사용하기 key는 마치 이름과도 같아서 변하지 않을 값을 사용해야 하지만 value의 값은 상관없다. dict = {1.2 : "float", 1 : "int", "abc" : "string", "num" : 123} dict[1.2] = "float" dict[1] = "int" dict["abc"] = "string" dict[".. 2021. 10. 12.
[JavaScript] 함수 여러 값 return 하기 JavaScript의 함수는 하나의 값 밖에 리턴하지 못한다.function veggie() { const job = 'Developer'; const studying = 'JavaScript'; return (job, studying);}const veggieDetail = veggie(); 위의 코드가 안 된다는 의미다. 실행해보면, studying은 정상적으로 리턴이 되나, job은 리턴이 되지 않는다.  그럼 어떻게 두 개 이상의 값을 리턴할 수 있을까? 배열을 사용하면 된다.  리턴 값을 배열로 반환하기function veggie() { const job = 'Developer'; const studying = 'JavaScript'; return [job, studying];}const veg.. 2021. 10. 11.