728x90

언어 5

[C#] 인덱스 범위 표현식(Range expression)

개요동아리 프로젝트 작업하다가 새로운 연산자를 알게되었다.arr[^1]; arr[0..^2]; arr[..]위과 같은 연산자들이다.본문찾아보니 인덱스 범위 표현식(Range expression)이라고 부르는 듯하다.(C# 8.0) 크게 ^ 연산자와 .. 연산자가 있다.^ 연산자int[] arr = { 0, 1, 2, 3, 4 }; int n = arr[^1]; // n == 4 // arr[^1] == arr[arr.count-1]^ 연산자는 위와 같이 count-n과 같은 역할을 수행한다. arr[^1]로 마지막 값에 접근 할 수 있다. arr[^0]은 마지막 값의 다음 위치를 가르키니 주의 해야한다.(arr[^0] == arr.count).. 연산자int[] arr = { 0, 1, 2, 3, 4 }..

언어/C# 2023.03.28

[C++] memset 함수 특정 값 초기화

개요 알고리즘 문제를 풀며 자꾸 오답이 나온다. memset 함수를 잘못된 방법으로 사용하고 있었다. 본문 배열의 값을 전부 1000으로 초기화시키고 싶어서 1000을 입력했었다. 이게 문제였다. memset 함수는 1바이트 단위로 초기화하기 때문에 int형(4byte)은 제대로 표현할 수가 없다.(1바이트인 char형은 가능) 만약 int형인 1을 인자로 전달하게 되면 될 것 같지만 실제로는 위처럼 작동한다고 하니 주의해야 한다. 그래서 위처럼 범위 기반 for문으로 초기화해 주었다.

언어/C++ 2023.02.15

[C++] 음수 인덱스 (Negative Index)

개요 https://nakuri.tistory.com/41 [BOJ] 1937 욕심쟁이 판다 C++ 개요 https://www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n × n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, nakuri.tistory.com 위 문제를 풀다가 잘못된 코드로 인해 배열의 음수 인덱스에 접근을 했다. 제출했더니 에러가 나지 않고 정답이 나와버려서 궁금증에 한 번 알아봤다. 본문 C++에서는 잘못된 문법이 아니라고 한다. 배열과 포인터의 작동방식이 같기 때문에 이전 포인터를 참조하는 것이다. 하지만 초기화 되지 않은 공간을 참조했기 때문에 문제가 풀린 건 그냥 운..

언어/C++ 2023.02.12