Mindmap
colab : 이코테2021_그리디
colab : 이코테2021_구현
\*알고리즘 개념 오답노트\*
colab : 이코테2021_DFS/BFS
colab : 정렬
colab : 이진 탐색
colab : 다이나믹 프로그래밍
colab : 최단 경로 알고리즘
colab : 기타 그래프 이론
Console.ReadLine() : 엔터키가 눌려질 때까지 입력 받은 문자열을 리턴하는 메서드int32.Parse(String) : string을 int로 형변환하는 메서드
실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하float : 소수 7번째자리까지만 다룰 수 있다.double : 8바이트로 float의 2배 크기이며, 소수점 15자리까지 정확하게 다룬다.decimal : 소수점 29번째까지 표현할 수 있는 소수 형식
DateTime.Today : 현재 날짜 0시 0분 0초 반환DateTime.Now : 현재 년도, 월, 일, 시, 분, 초 반환문자열로 Format 설정\* \[Microsoft] 사용자 지정 날짜 및 시간 서식 문자열referencehttps://drago
int.Parse() : 문자열(string) -> 정수(int)
Console.WriteLine은 (메모리상 변수의 조작에 비하면) 시간이 많이 걸리는 작업으로 이를 반복적으로 여러번 호출하면 시간이 오래 걸리게 되고, 시간 초과가 된다.Console.WriteLine을 최소한으로 호출하기 위해 StringBuilder 사용Stri
System.Array
for문 대신 부분합 공식 사용하여 코드 라인 축소if문 대신 조건 연산자 사용하여 코드 라인 축소\[조건식] ? \[참일 때 값] : \[거짓일 때 값];
논리 연산자논리곱 연산자( && : AND )논리합 연산자( || : OR )부정 연산자( ! : NOT )
while & break
Enumerable.Range(a, b).ToList() : a부터 b개의 수를 순차적으로 Linq에 채워 리스트로 만듦.Remove(n) : 리스트에서 해당 값을 가진 첫번째 요소를 제거.Sort() : 리스트 정렬
\-2,000,000,000 ≤ N, M ≤ 2,000,000,000n과 m의 연산은 int의 범위를 벗어나므로 그보다 더 큰 데이터 형식인 long을 사용해야 한다.int : –2,147,483,648 ~ 2,147,483,647 long : –9,223,372,0
C, C++에서 변수 선언 후 데이터를 입력하지 않을 경우 쓰레기 데이터가 들어가 소프트웨어가 엉뚱하게 동작하는 문제를 미연에 방지하기 위해 C- C- 데이터 형식 주의 : public static double Pow (double x, double y);
배열 출력 foreach
조건 연산자 : \[조건식] ? \[참일 때의 값] : \[거짓일 때의 값]
에러 발생 잡기 : try...catch...에러 발생시키기 : throw
구조체
StringBuilder 사용도 가능아스키 코드알파벳 소문자 : 97 ~ 122알파벳 대문자 : 65 ~ 90숫자 0~9 : 48 ~ 57
~.Parse(string)public static double GetNumericValue (char c);문자가 숫자를 나타내는 경우에는 c의 숫자 값을 반환하고 그렇지 않은 경우에는 -1.0을 반환Math.Pow(double x, double n) : n의 n승
StringBuilder sb = new StringBuilder();변경가능한 문자열을 나타내는데 사용하는 클래스참조 값이 변경되지 않고 힙 메모리에서 값 삽입, 추가, 제거System.Text 네임스페이스 객체
위 코드를 아래와 같이 작성하면 다음과 같은 컴파일러 에러가 발생하는데이는 함수를 호출하기 전 클래스의 인스턴스를 만들지 않았기 때문에 발생하는 문제이다. 위 에러의 해결방법은 두 가지가 있는데 맨 위 코드처럼 (1) static을 함수 선언시에 붙여주거나 아래와 같이
string.Length : 붙어있는 문자열의 길이 반환Array로 받아 Split하는 방법은 띄어쓰기가 없을 경우 문자열을 묶어서 하나로 본다.
StringBuilder sb = new StringBuilder() : StringBuilder 선언
리스트 중복 제거 : .Distinct()
문자열 => int 리스트, int 배열로 변환하는 방법
우선 A, B, C가 21억 이하의 자연수이므로 해당 코드의 자료형을 long으로 설정해준다. 다음으로 생산 비용과 판매 비용을 구하기 위해 '노트북 수'를 의미하는 n을 임의로 지정해준다. n을 통해 생산 비용과 판매 비용을 구하게 되면 각각 아래의 식이 성립이 된다
Substring(int startIndex) : 시작 인덱스 ~ 나머지 모든 문자열 returnSubstring(int startIndex, int length) : 시작 인덱스 ~ 입력된 길이까지 문자열 return
배열 정렬 방법Array.Sort() 메서드기존 배열의 정렬 순서를 변경하므로 원래 순서가 보존되지 않음LINQ - 쿼리기존 배열이 변경되지 않고 보존되지만 익명 형식(var)을 반환해 타입이 정확하게 일치하지 않음LINQ - OrderBy() 메서드 호출 후 ToA
풀이1해당 수학 문제에서 가장 아랫부분의 정사각형이 n개가 되었을 때점선의 개수 (점선은 겹치는 선이므로 2배를 전체 선의 개수에서 빼야 함)= (가로 점선 + 세로 점선) x 2= ((1부터 n-1까지 더한 값) + (1부터 n-1까지 더한 값)) x 2= $4\\d
SelectLINQ 메소드전체 컬렉션을 탐색하거나 연산해서 원본 그대로 반환
문제 조건N의 범위가 다음과 같으므로 1 ≤ N ≤ 10,000,000 자료형은 넉넉하게 long을 선택한다.int 자료형 범위 : –2,147,483,648 ~ 2,147,483,647long 자료형 범위 : –9,223,372,036,854,775,808 ~ 9,
올림 : Math.Ceiling(double값)내림 : Math.Truncate(double값)반올림 : Math.Round(double값, 자릿수)
Length vs GetLength()
DateTime.ParseExact()bool isIn = r.Split()\[2] == "IN" ? true : false;TimeSpan, .TotalMinutesClass vs Structforeach(KeyValuePair<> kv in dic)dic.Or