problem solve

Algorithm/문제풀이

[백준/Swift] 2293 동전 1

문제 정보 문제 출처: 백준 온라인 저지 문제 링크: 2293 동전 1 제출 언어: Swift 알고리즘 분류: 다이나믹 프로그래밍 풀이 다이나믹 프로그래밍 전체 문제의 최적해가 부분 문제의 최적해로부터 만들어지는 알고리즘이다 하나의 문제를 단 한 번의 연산으로 해결하기 위해, 즉 전체 문제를 풀 때, 동일한 계산을 반복하지 않기 위해 Table에 부분문제의 solution을 저장한다 항상 최적의 해를 보장하지만 Table에 부분문제의 solution을 저장하므로 많은 메모리를 차지한다 알고리즘 설계 아래의 그림과 같이 다이나믹 프로그래밍 배열을 하나 생성하여 부분 문제의 해에 해당하는 값들을 넣어주었다 i : 해당 동전까지 사용할 수 있을 때 만들 수 있는 경우의 수 j : 가치의 합을 1원부터 k원까지..

Algorithm/문제풀이

[알고리즘/Swift] Codility - TapeEquilibrium

문제 [Codility] https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/ A non-empty array A consisting of N integers is given. Array A represents numbers on a tape. Any integer P, such that 0 < P < N, splits this tape into two non-empty parts: A[0], A[1], ..., A[P − 1] and A[P], A[P + 1], ..., A[N − 1]. The difference between the two parts is the value of: |(A[0] + A[1] + ..

Algorithm/문제풀이

[알고리즘/Swift] 0119 스파이를 찾아라!

문제 준식이는 수열 A[1], A[2], ..., A[N] (N ≥ 3) 을 가지고 있다. 이 수열에서 단 한 개의 수를 제외하고 나머지 수는 모두 같다. 그 수는 수열에서 몇 번째에 위치할까? 입력 첫째 줄에 테스트 케이스의 개수 T 가 주어진다. 각 테스트 케이스의 첫째 줄에 수열의 길이 N (3 ≤ N ≤ 100)이 주어진다. 둘째 줄에 A[1], A[2], ..., A[N]이 주어진다. 수열의 i번째 원소는 정수 A[i] (1 ≤ A[i] ≤ 100)이다. 주어지는 수열에서 단 한 개의 수를 제외하고 나머지 수는 모두 같다. 출력 각 테스트 케이스마다 문제의 정답이 수열에서 몇 번째에 위치하는지 출력한다. // 입력 1 5 1 4 4 4 4 // 출력 : 1 풀이 이번 문제는 배열을 순회하는 간단..

Algorithm/문제풀이

[알고리즘/Swift] 0118 지금 무슨 노래 듣고 있어요?2

문제 현진이는 길거리를 걸을 때 에어팟으로 노래를 듣는다. 현진이는 자신만의 플레이 리스트가 있기 때문에 집을 나설 때 마다 플레이 리스트의 노래를 순서대로 이어서 듣고, 모든 플레이 리스트를 들었다면 처음부터 다시 반복 재생해서 듣는다. 현진이의 플레이 리스트는 N 개의 곡으로 이루어져 있다. 각각의 곡의 길이(초)를 B[1], B[2], … , B[N] 이라고 하자. 현진이는 집을 나선지 1 초가 지난 시점부터 B[1] 초까지 1 번째 노래를 듣고, B[1] + 1 초부터 B[1] + B[2] 초까지 2 번째 노래를 듣는 식으로 나머지 모든 노래를 듣는다. 예를 들어 현진이의 플레이 리스트에 있는 3 개의 곡의 길이가 각각 3, 1, 2 라고 하자. 현진이가 집을 나선지 1 초부터 3 초까지는 첫 번..

Algorithm/문제풀이

[알고리즘/Swift] 0117 준식이의 모험2

문제 준식이의 모엄 은 준식이가 2차원 N × M 격자 세상에서 떠나는 모험을 주제로 한 게임이다. 당신은 이 게임의 개발자가 되었다. 준식이는 2차원 N × M 격자 세상의 어딘가에 위치해 있다. 플레이어는 L , R , U , D 입력을 통해 준식이를 왼쪽, 오른쪽, 위, 아래 칸으로 이동시킬 수 있다. 하지만 만약 이동하려는 칸이 격자 바깥이거나, 벽인 경우 준식이는 플레이어의 입력을 무시하고 제자리에서 이동하지 않는다. 게임을 좀 더 흥미진진하게 만들기 위해서 격자 세상에 가시 함정(^)이 추가되었다. 준식이는 가시 함정이 위치한 칸으로 이동할 수 있지만 함정을 밟아서 데미지를 1만큼 입게 된다. 함정은 밟더라도 사라지지 않는다. 만약 함정 위에서 입력받은 방향으로 움직일 수 없어 제자리에 멈추는..

Algorithm/문제풀이

[알고리즘/Swift] 0116 준식이의 모험1

문제 준식이의 모엄 은 준식이가 2차원 N × M 격자 세상에서 떠나는 모험을 주제로 한 게임이다. 당신은 이 게임의 개발자가 되었다. 준식이는 2차원 N × M 격자 세상의 어딘가에 위치해 있다. 플레이어는 L , R , U , D 입력을 통해 준식이를 왼쪽, 오른쪽, 위, 아래 칸으로 이동시킬 수 있다. 하지만 만약 이동하려는 칸이 격자 바깥이거나, 벽인 경우 준식이는 플레이어의 입력을 무시하고 제자리에서 이동하지 않는다. 2차원 N × M 격자 세상과 플레이어의 입력이 주어질 때, 플레이어의 모든 입력이 끝난 후의 준식이의 위치는 어디일까? 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에 2차원 격자 세상의 크기 N, M (1 ≤ N, M ≤ 8) 이 주어진다. ..

Swift

[Swift] 문자열 다루기

Swift 문자열 다루기 이왕 iOS 개발자 되기로 맘 먹은 김에 Swift 공부도 할 겸 해서 이제부터 알고리즘 풀이를 Swift로 해보려고 마음 먹었다 👊👊 import, print와 같은 내장 함수들이 python 과 유사했지만 역시 자료형에 민감한 언어이다 보니 신경써야 할 부분이 많았다 특히 문자열에서 특정 문자에 접근하는 것 골치 아픈 것은 명성이 자자하고 heapq, deque 같은 모듈이 지원이 안되는 경우의 처리가 복잡했다 이제야 보이는 파이썬의 편리함... 그래도 Swift가 훨 빠르다! 그래서 !!! 앞으로 Swift로 알고리즘을 풀 때 나도 참고하고 누군가도 참고하기 위해서 정리해보려고 한다 1. 문자열 입력 받기 readLine() Swift에서는 문자열을 입력받을 때 readLi..

ruby
'problem solve' 태그의 글 목록