본문 바로가기

전체 글657

[SW Expert Academy] 1247. [S/W 문제해결 응용] 3일차 - 최적 경로 문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15OZ4qAPICFAYD&categoryId=AV15OZ4qAPICFAYD&categoryType=CODE "이 문제는 가장 짧은 경로를 '효율적으로' 찾는 것이 목적이 아니다." 라는 것을 보아하니 모든 경로를 방문하는 dfs를 구현해서 풀어보라는 문제같다.나는 외판원순회(TSP)로 풀었다. N+2개의 좌표간 최단 거리를 구해서 배열에 저장해둔다.메모이제이션을 위해 (방문한 고객 인덱스들, 현재 좌표 인덱스) 를 인덱스로 하는 배열을 하나 만든다.이 배열에는 현재 좌표 인덱스부터 아직 방문하지 않은 고객들을 모두 방문한 후 집으로 돌아가는 경로 거리 중.. 2019. 1. 8.
[190108] GITHUB private 무료화 원문 : https://blog.github.com/2019-01-07-new-year-new-github/?fbclid=IwAR32MTYA6BYcaf9MprsZW0ZH5kEx74wWbl-o7hq5Cv17mQfdvPdNv-vLNws요약하자면 무제한 private 레파지토리 제공. 단 3명의 collaborators 까지만. 기존에 private 레파지토리 쓴다고 한 달에 7달러인가 내고 있었는데 자동으로 Pro로 오른 듯. 일단 downgrade 신청해놨다.무료 레파지토리 좋아~ 2019. 1. 8.
[Kotlin] Default argument (디폴트 매개변수) 문자열 a, b를 입력받아 두 문자열을 합치는 함수로 예를 들어보자.만약 a, b를 입력하지 않는 경우 각각 "a", "b" 문자열로 대체된다고 하자. 123456789101112// javaString getString(String a, String b){ return a+b;} String getString(String a){ return getString(a + "b");} String getString(){ return getString("a" + "b");}Colored by Color ScriptercsJAVA에서는 default argument 를 지원하지 않아서 오버로딩 시 위와 같이 함수를 다 만들어줘야 한다. 12/* kotlin */fun getString(a:String = "a",.. 2019. 1. 6.
[BOJ][1181] 단어 정렬 문제 : https://www.acmicpc.net/problem/1181 문제 조건 중 단어가 여러 번 입력된 경우 한 번씩만 출력을 하라는 항목이 있다.그래서 중복을 제거하기 위해 set을 이용해서 풀었다.그리고 set의 정렬 조건을 수정하였다. 정렬 조건은만약 비교하는 문자열 2개의 길이가 다르다면 앞에 있는 문자열이 길이가 더 짧은 경우 true, 앞에 있는 문자열이 길이가 더 긴 경우 false를 반환.문자열 2개의 길이가 같다면 사전순 정렬로 되어있으면(앞에 있는 문자열 < 뒤에 있는 문자열) true, 아닌 경우 false를 반환한다. C++ set.insert 의 시간복잡도는 O(log(set.size()) 이므로, 총 시간복잡도는 대략 O(NlogN) 소스코드 : https://gist... 2019. 1. 6.
[SW Expert Academy][2819] 격자판의 숫자 이어 붙이기 문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7I5fgqEogDFAXB&categoryId=AV7I5fgqEogDFAXB&categoryType=CODE 만들 수 있는 서로 다른 일곱 자리 수를 구하는 문제이므로 set을 이용했다.수를 이어 붙여서 7자리 수를 만들어야 하므로 DFS를 이용했다.(0, 0) ~ (4, 4)를 시작 지점으로 상하좌우 dfs를 돌리면서 수를 이어붙인다.이어붙인 수가 7개가 되면 set에 만든 문자열을 넣는다.탐색을 모두 마친 후 set의 size가 정답이 된다. 소스코드 : https://gist.github.com/fpdjsns/92ce5fc97f0fb363b588979.. 2019. 1. 5.
[SW Expert Academy][1206] View 문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE 하나의 빌딩에서 조망권에 드는 세대 수를 찾으려면 왼쪽 2채, 오른쪽 2채의 높이만 비교하면 된다.따라서 i 번째 빌딩에서 조망권에 드는 세대 수를 구하려면, i-2, i-1, i+1, i+2 번째 빌딩 높이 중 최대를 구한다.그리고 i번째 빌딩과 구한 최대 높이의 차이를 구한다. 구한 차이가 정답이 될 수 있는 세대 수이다.만약 높이의 최대 값보다 i번째 빌딩 높이가 작다면 정답이 될 수 있는 집은 없다. 하나의 TC의 시간복잡도는 O(빌딩 수 *.. 2019. 1. 5.