목록전체보기 (69)
슈프림 블로그
programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 정수 삼각형 문제와 비슷한 동적계획법 문제이다. [프로그래머스] 동적계획법(Dynamic Programming) - 정수 삼각형 (Python / Swift 풀이) programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, ..
programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 삼각형 구조 삼각형 구조의 데이터는 각 열의 행의 크기가 다른 2차원 배열로 데이터가 들어오게 된다. triangle[0] 의 크기는 1 triangle[1] 의 크기는 2 ... triangle[n] 의 크기는 n+1 문제에서는 정삼각형으로 표현하였지만 * * * * * * * * * * 2차원 배열 형태로 값이 들어오므로 다음과 같이 왼쪽으로 밀어 직각삼각형으로 생각할 수 있다. 0 1 2 3 0 | * 1 | * * 2 | * * * 3 | * ..
조합 구하기 먼저, 주어진 숫자 카드로 만들 수 있는 모든 조합을 구해야 한다. 카드 조합의 가능한 최대 길이는 카드의 개수와 같다. 자리수의 조합이므로, Int형으로 다루는 것 보다 String형으로 다루는 것이 +연산자를 사용하여 편리하게 구현할 수 있을 것이다. Swift에서는 문자열 그 자체로 다루는 것 보다, 문자열을 배열 형태로 변환하여 사용하는 것이 더 편리할 것이다. 조합을 구하는 함수는 반환형을 String을 요소로 갖는 Set로 하는게 좋겠다. Int형이라면 맨 앞자리 숫자가 0일 경우 없애버리기 때문에 그 앞에 새로운 숫자를 붙이게 될 경우, 1+01 => 101이 아니라, 1+01 -> 11이 되어버릴 것이기 때문이다. 조합을 구할 때 재귀를 사용하면 좋겠다. n자리수 숫자 조합을 ..
programmers.co.kr/learn/courses/30/lessons/42840?language=swift 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr n번째 답으로 무엇을 찍었을까?? 수포자들은 일정한 패턴을 반복적으로 사용한다고 한다. 그렇다면 n번째 답으로는 몇번을 찍었을지 예측 할 수 있다! 수포자들이 사용하는 패턴의 길이가 count라고 하면, n번째 위치의 값은 n % count 위치의 패턴 값과 같다. n번째 문제의 정답과 찍은 답 비교 따라서 n번째 문제의 정답(answer 배열)과 ..
↓↓↓ XCode에서 Realm 사용할 준비 하고 오기!! ↓↓↓ 2020/09/19 - [iOS_Swift] - [iOS/Swift] XCode 프로젝트에서 Realm 사용하기 1 [iOS/Swift] XCode 프로젝트에서 Realm 사용하기 1 Realm이란? Realm 발음은 주변분들 보면 [렘]이라고 발음하시는 분들도 있고 [렐름]이라고 발음하시는 분들도 있었다. 나는 [렘]으로 발음하는데, 뭐가 정확한건지는 잘 모르겠다...! 일단 Realm은 모�� tngusmiso.tistory.com 모델 만들기 먼저 데이터로 사용될 모델을 만들어주자. 나는 간단하게 프로젝트 폴더에 Model.swift라는 이름의 파일을 만들어 주었다. 이 공간에 클래스를 선언하여 모델을 만들려고 한다. RealmSwi..
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 위의 문장이 문제 내용의 전부다. h보다 큰 값이 h개 이상인 경우를 찾으면 된다. 어떻게 접근해야할까?? 최대값을 찾아야 하므로 일단 citations를 내림차순으로 정렬하는 것이 편리할 것이다. 내림차순 정렬된 배열은 x보다 작은 인덱스에 위치한 값은 x번째 값보다 크다는 것을 이용하여, h-1 인덱스의 값이 h 이상인지 판별하면 답을 얻어낼 수 있다. (= 적어도 0 ~ h-1 인덱스까지의 값들은 h 값 이상이라는 뜻) 실패 케이스 h를 점차 하나씩 줄여가면서 판단하면 되겠다는 생각으로, h의 초기값은 citations 값 중 최댓값으로 ..
문제에서 요구하는 그대로 풀어내면 되는 간단한 문제다. 먼저 2차원 배열 commands에는 [i,j,k]가 여러개 담겨있는 구조다. i와 j로는 부분 배열을 만들면 되고, k로는 정렬된 부분배열에서 값을 꺼내오면 된다. 반복문을 돌면서 i,j,k 값의 묶음을 꺼내자. for command in commands 사용하기 편리하도록 변수 i,j,k에 값을 저장해주자. 여기서 -1을 다 뺀 이유는?? 문제에서는 i번째, j번째, k번째라는 표현을 했는데, 배열 인덱스는 0부터 시작하므로 배열에 접근하기 위해서는 -1을 해줘야 한다. let i = command[0]-1 let j = command[1]-1 let k = command[2]-1 부분배열을 만들고, 정렬해주자. let sorted = array..
Realm이란? Realm 발음은 주변분들 보면 [렘]이라고 발음하시는 분들도 있고 [렐름]이라고 발음하시는 분들도 있었다. 나는 [렘]으로 발음하는데, 뭐가 정확한건지는 잘 모르겠다...! 일단 Realm은 모바일용 데이터베이스 관리 시스템(오픈소스)이다. Realm은 관계 데이터베이스가 아니라서 테이블을 사용하지 않는다. 따라서 쿼리를 사용하지도 않는다! 그냥 객체 자체가 데이터고, 객체 형태로 바로 데이터베이스에 저장하는 방식이라고 한다. 신기해,,, 장점은 객체 자체를 저장하고 꺼내서 사용하므로, 데이터베이스에서 가져온 데이터를 가공할 필요 없이 바로 사용이 가능하다. 따라서 ORM을 통한 테이블 객체 간 변환 과정이 생략되므로 훨씬 빠르다는 것이다. 단점은 NoSQL 방식이므로 쿼리를 통해 호출..