261001 몰랐던것들

강현구
∙∙조회 11

 

2차원 배열 [,]

  • int[,] = 대괄호 하나 안에 쉼표. 쉼표 하나 = 차원 하나
  • 행(row) = 가로줄, 열(col) = 세로줄. column은 "기둥"이라 세로
  • [행, 열] 순서 = 좌표로는 [y, x] (Unity (x, y)와 반대)
  • GetLength(0) = 행 수, GetLength(1) = 열 수. 숫자는 "몇 번째 자리(차원)를 묻냐"
  • Length = 전체 칸 수 (행 x 열)
  • new int[5, 6] = 크기 먼저, 값은 나중에 / { {...}, {...} } = 값을 알 때, 크기는 자동
  • 못 찾음 표시로 -1 사용 (배열 번호는 0부터라 -1은 절대 진짜 위치가 아님)

 

가변 배열 [][]

  • int[][] = 배열을 담은 배열 (서랍장 안의 서랍)
  • new int[N][] = 서랍 개수만 정함. new int[N][k]는 에러
  • records[i] = new int[k] = i번째 서랍을 k칸으로 만들기
  • records[i] = 서랍 하나(배열), records[i][r] = 서랍 안 칸 하나(숫자)
  • 대괄호는 왼쪽부터 한 겹씩 벗김. 두 번째 칸만 따로 찾는 방법은 없음
  • [,]는 한 번에 [행, 열] 다 줘야 함 / [][]는 한 겹씩 가능

 

배열 공통

  • { N } = N칸이 아니라 N이 들어 있는 1칸 배열. 칸 수는 new int[N]
  • 칸 번호(i)와 칸 안의 값(array[i])을 구분할 것
  • 마지막 칸 번호 = Length - 1
  • 새 배열 없이 뒤집기 = 양 끝을 temp로 맞바꾸며 가운데까지 (Length / 2). 짝수, 홀수 다 됨
  • 번호로 칸 찾기 = 배열[번호 - 1]
  • 배열은 반복문 밖에서 만들 것 (안에서 만들면 매번 새로 만들어져 값이 사라짐)

 

문자열 표기

  • @"..." = 백슬래시 그대로, 줄바꿈 그대로. 큰따옴표는 ""로
  • $@"..." = 보간 + 축자. {변수}는 값으로, \는 그대로
  • {값,10} 오른쪽 정렬, {값,-10} 왼쪽 정렬. 폭 자리엔 상수만 가능
  • {값,폭:포맷} 순서로 같이 쓸 수 있음
  • 보간 안의 삼항 연산자는 괄호 필수 {(조건 ? a : b)}
  • F1, F3은 출력할 때 쓰는 포맷. 입력 안내 문구에 쓰면 글자로 찍힘
  • 화면에 보이는 값(F1)이 아니라 실제 값으로 판정할 것

 

문자열 함수

  • new string : 같은 문자를 원하는 개수만큼 반복한 문자열을 만듦 (샵 3개 -> ###). 개수에 변수 사용 가능
  • Substring : 시작 위치, 개수 -> 잘라서 꺼내기
  • Remove : 시작 위치, 개수 -> 지우기. 두 번째는 끝 위치가 아니라 개수
  • Insert : 위치, 넣을 문자열 -> 끼워 넣기
  • 개수 구하기 = 끝 - 시작 + 1
  • 문자열 함수는 원본을 안 바꿈. 결과를 변수에 받아야 함
  • D6 포맷은 정수 전용. 문자열 왼쪽 채우기는 PadLeft : 최소 길이 6, 채울 문자 0
  • Replace는 정확히 그 글자만 바꿈. "숫자 전부" 같은 종류로는 못 바꿈
  • IsDigit : 글자 하나가 숫자인지 확인 (char 타입의 기능)
  • 문자열 고치는 순서 : ToCharArray로 배열 만들기 -> 칸 수정 -> new string으로 다시 문자열

 

 

기타

  • ReadLine은 항상 string. bool과 비교하려면 bool.Parse
  • "여유"는 부호에 의미가 있음 (음수 = 초과). "차이"일 때만 Abs
  • 에러 경로에 다른 문제 번호가 보이면 시작 프로젝트 확인
  • columns, column처럼 비슷한 이름 오타 주의
  • "0 이상", "넘지 않음" 같은 문장은 검사가 아니라 입력 보장일 때가 많음

 

공부 방법

  • 막히면 예상 결과부터 보고 "무엇이 무엇으로 바뀌었나" 말로 정리
  • 입력 예시에 줄마다 이름표 붙이기
  • 예시 하나만 넣지 말고 모양이 다른 입력으로도 테스트
  • 실행 결과를 예상 결과 옆에 놓고 한 글자씩 비교
  • 밤 11시 이후 공부는 얻는 것보다 잃는 게 많음