본문 바로가기

전체 글533

[알고리즘] 소수 구하기 (에라토스테네스의 체) 소수 소수 : 약수가 해당 숫자 본인과 1만 존재하는 수를 의미한다. (영어로는 Prime Number) EX) 2, 3, 5, 7 ..... (짝수 중에선 2가 유일한 소수이다.) 에라토스테네스의 체 모든 자연수는 단 하나의 소수들의 곱으로 표현된다는 특징을 이용하여 일정 범위의 수들이 소수인지 여부를 판단하는 방법이다. 즉, 소수의 곱이 되는 수는 소수가 아닌 것을 이용하여 소수가 아닌 수들을 걸러나가는 방법이다. 2가지 방법이 있는 데 순서의 차이일 뿐 어느 것을 써도 무방하다. 1. 소수 구한 후 결과 반전 boolean형 배열을 선언할 때는 초기값이 false로 채워져있기 때문에 우선 소수가 아닌 수들에 true를 해놓고 나중에 반전을 시키는 방법이다. int number = 10000; boo.. 2020. 10. 5.
[코틀린] 표준 라이브러리 확장 함수 5가지 (let, also, apply, run, with) 표준 라이브러리 확장 함수 함수 접근 방법 반환 방법 T.let it block 마지막 결과값 T.also it caller 자체를 반환 (it) T.apply this caller 자체를 반환 (this) T.run 혹은 run this block 마지막 결과값 with this Unit 1. let let()을 호출하는 객체(caller)를 람다식 블럭에 파라미터로 넘김 'it'을 통해 호출 객체(caller)에 접근 블럭의 결과값을 반환 import java.util.* fun main() { var arr = arrayOf(1, 2, 3) arr.let { println("${it[1] + it[2]}") } //let 람다식 내부에서 arr[1] + arr[2] 를 출력 println(arr.l.. 2020. 10. 4.
[코틀린] 배열 평탄화 flatten() 배열 평탄화 다차원 배열을 1차원 배열로 만드는 것을 의미한다. Array의 flatten() 메서드 사용 List 형태로 반환한다. import java.util.* fun main() { var arr = arrayOf(arrayOf(1,2,3), arrayOf(4,5,6), arrayOf(7,8,9)) println(Arrays.deepToString(arr)) var arr2 = arr.flatten() println(arr2) /*결과 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] [1, 2, 3, 4, 5, 6, 7, 8, 9] */ } 2020. 10. 4.
[알고리즘] 외판원 순회 2 (백준 10971번) 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 외판원 순회, 일명 TSP라고 불리는 문제다. 외판원은 모든 도시를 최소 비용으로, 단 한 번 방문한 도시는 다시 방문할 수 없다는 조건 하에 순회하게 된다. (마지막 도시에서 출발 도시로 돌아오는 경우 제외) 도시를 방문하는 순서 케이스들을 찾아야 하기에 순열을 구하는 문제다. 이 경우는 N의 크기가 10 이하이기 때문에 백트랙킹으로 모든 경우를 찾을 수 있다. Solution 백트랙킹으로 순열을 구할 때와 조합을 구.. 2020. 10. 4.