https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 조건 ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다. ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다. ‘쩰리’가 이동 가능한 방향은 오른쪽과 아래 뿐이다. 위쪽과 왼쪽으로는 이동할 수 없다. ‘쩰리’가 가장 오른쪽, ..
문제 Implement strStr() Implement strStr() - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com needle을 찾았다면 찾은 첫 번째 index를 반환, 찾지 못했다면 -1을 반환해야 합니다 class Solution { func strStr(_ haystack: String, _ needle: String) -> Int { if needle.isEmpty { return 0 } if !haystack.contains(needle) {..
문제 Palindrome Number Palindrome Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Constraints(제약 조건)의 범위의 숫자가 들어오는데, 완벽한 대칭이 되는 숫자의 경우에만 true 값을 반환하면 됩니다. 1. 숫자를 문자열로 변환 2. 문자열의 index값을 이용하여, 앞과 뒤를 비교 3. 2번을 문자열의 사이즈 1/2 까지만 반복문 실행 swift 문자열 index 접근은 c와 같이 접근을 하지 못하고 c++의 반..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import Foundation func solution(_ numbers:[Int], _ hand:String) -> String { var ret:String = "" // 키패드를 2차원 배열로 생각하고, 숫자 0의 좌표 var datas:[[Int]] = [[3, 1]] // 키패드 * var leftHand: [Int] = [3, 0] // 키패드 # var rightHand: [Int] = [3, 2] // 키패드 숫자별로 좌표 for i in 1...9 { datas.append([(i - ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다풀고나서 문제의 유형에 대해 타입을 보니 greedy 였다 처음의 시도는 아무생각없이 Dictionary를 사용하였는데, 우선 문제는 Array에 비용이 높고 optional에 대한 처리도 해줘야 하는 것을 나중에 알았다... 문법에 대해서 익힐 겸 코딩테스트도 할 겸 배워나가는 단계에서 이렇게 무너지고 Array로 다시 풀이를 하였다 import Foundation func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int { var result = ..
https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 공통적인 문제풀이는 동적계획법으로 구현을 하면 되며, 구조를 제대로 보고 규칙이 어떤 것인지 확인하면 된다. 여기 문제에서의 규칙은 arr[N] = arr[N - 1] + arr[N - 5] 의 값인 구조인데, 배열로 값을 저장하지 않고, 아래와 같이 구현하였다. long long 으로 한 이유는 arr[N] 값이 int 의 값을 넘어 가기에 이렇게 적게되었다. 사실 저번의 코드를 보게되니 이번 문제는..
https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 동적계획법 : 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용한다. 피보나치 수열을 보게 되면, 계속 반복되는 구조로 무수한 계산을 해야한다. 재귀함수를 통해서 코드를 간략하게 하고 반복문을 사용하지 않도록 구현을 할 수 있다. 단점으로는 메모리를 많이 차지하게 ..