목차 1. Hello world! 2. Variables 3. Data Types 4. Funtions 1. Hello world! Dart의 Hello world는 어떻게 작성할까? void main(){ print('hello world'); } Dart 파일을 실행하기 위해서는 반드시 main 함수가 필요하다. 이는 Dart 파일을 실행시 Dart는 자동적으로 main 함수를 찾기 때문이다. 출력 함수는 python과 동일하게 print를 사용한다. 2. Variables 1) var keyword Dart는 타입을 자동으로 정해준다. 만약 변수를 수정할 때는 같은 타입으로 해주어야 한다. var name = "shino72" 관습적으로 함수나 메소드 내부에 지역 변수를 선언할 때 var를 사용한다..
[문제] https://www.acmicpc.net/problem/1800 1800번: 인터넷 설치 첫 번째 줄에 N(1 ≤ N ≤ 1,000), 케이블선의 개수 P(1 ≤ P ≤ 10,000), 공짜로 제공하는 케이블선의 개수 K(0 ≤ K < N)이 주어진다. 다음 P개의 줄에는 케이블이 연결하는 두 컴퓨터 번호와 그 가격이 차 www.acmicpc.net [풀이] 해결방법을 찾지 못해, 참고한 문제이다.. 이분탐색 + 다익스트라 방식으로 해결하는 문제이다. 문제에서 제일 가격이 비싼 것에 대해서만 가격을 받기로 하였다. 라는 조건이 있다. 가격으로 들어올 수 있는 최고 금액은 1000000이다. 이분탐색과 다익스트라를 이용하여, 1~1000000까지 중에 최단거리이면서도, 가장 적은 가격을 지불하는..
[문제] https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net [풀이] 기존의 다익스트라 문제의 최소 비용을 저장해두는 배열에, 추가적으로 경로를 저장하는 배열을 사용한다. 최소 비용을 저장해두는 배열을 arr이라고 했을 때, 아래의 경우는 arr을 새롭게 갱신하는 경우이다. 이때 arr을 갱신하면서 경로추적을 위한 배열 route의 idx를 갱신해준다. if(nextWei < arr[nextIdx]) { arr[ne..
환율 정보 API https://www.data.go.kr/data/3068846/openapi.do 한국수출입은행 환율 정보 환율 DB www.data.go.kr 위의 링크에서 API 인증키를 발급받았다. 인증키를 이용해서 테스트를 해보면, 아래와 같은 결과가 나온다. 요청 변수 출력 결과 의존성 추가 버전 확인 https://github.com/square/retrofit GitHub - square/retrofit: A type-safe HTTP client for Android and the JVM A type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an accoun..
[문제] https://www.acmicpc.net/problem/1786 1786번: 찾기 첫째 줄에, T 중간에 P가 몇 번 나타나는지를 나타내는 음이 아닌 정수를 출력한다. 둘째 줄에는 P가 나타나는 위치를 차례대로 공백으로 구분해 출력한다. 예컨대, T의 i~i+m-1번 문자와 P의 1~m www.acmicpc.net [풀이] https://shino72.tistory.com/entry/String-Matching-Navie-DFA-KMP String Matching [Navie, DFA, KMP] String Matching Navie algorithm [설명] 텍스트의 시작부터 끝까지 패턴과 일치하는지 확인한다. [시간복잡도] $O(MN)$ [코드] static void search(Strin..
String Matching Navie algorithm [설명] 텍스트의 시작부터 끝까지 패턴과 일치하는지 확인한다. [시간복잡도] $O(MN)$ [코드] static void search(String pat, String txt) { int l1 = pat.length(); int l2 = txt.length(); int i = 0, j = l2 - 1; for (i = 0, j = l2 - 1; j < l1;) { if (txt.equals(pat.substring(i, j + 1))) { System.out.println("Pattern found at index " + i); } i++; j++; } } DFA 알고리즘 [특징] Navie 알고리즘에서 각 숫자에 대한 표기를 하는 방식이다. 첫 ..