[프로그래머스/Swift] 둘만의 암호
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 새로운 Lv1 문제가 나왔다. 이런 건 다 풀어줘야지~~ 문자열 유형이었는데, 알파벳을 배열(alph)에 넣고 진행해 줬다. 문자열 배열 s를 순회하면서 시작위치를 idx에 넣어줬는데 여기서 UnicodeScalar를 사용해서 "a"를 기준으로 상대적인 위치값을 구했다. 그리고 문제를 잘 읽어보면 skip에 포함된 알파벳을 무시하고 넘어가야 되기 때문에 if 조건문을 달아줬다. skip에 포함되..
[프로그래머스/Swift] k진수에서 소수 개수 구하기
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr String 이니셜라이저를 통해 k진수로 바꿀 수 있다! 조건을 보니 0을 기준으로 문자들을 나누면 될 것 같았다. 그다음 소수인지 판별만 해주면 된다. import Foundation func isPrime(num: Int) -> Bool { if num < 4 { return num == 1 ? false: true } for i in 2...Int(sqrt(Double(num))) { if ..
[프로그래머스/Swift] 점프와 순간 이동
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에서도 주어지지만 점프로 이동하는 것을 최소로 하려고 한다! 그러니까.. 최대한 순간이동을 사용해서 진행해야 한다는 것이다. 그래서 그리디 문제인가?? 생각했고 우선 DFS로 해봤다. 먼저 순간이동으로 DFS를 재귀호출하고 그다음은 1... k칸을 이동하면서 진행하도록 했는데 5000도 시간초과로 통과하지 못했다ㅋㅋ 그래서 흠... 일단 아이패드에 예제에 규칙이 있는지 적어봤다. 순간이동을 x..
[백준/Swift] 2468번: 안전 영역
·
알고리즘/백준
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net BFS 문제! 이 문제는 전에도 풀어봤었는데, 사실 문제만 딱 읽어도 순서대로 비를 내리고 그에 맞는 안전영역만 구하면 된다. 그런데 전에도 포스팅했지만 이번에 또 올리는 이유는... 다른 사람 코드를 보았기 때문..! 처음에는 이렇게 풀었다. import Foundation let n = Int(readLine()!)! var array = [[Int]]() var maxH = 0 for _ in 0..
[백준/Swift] 1260번: DFS와 BFS
·
알고리즘/백준
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 전에 풀었던 문제였는데 음 Swift로는 처음 풀어본다. c++과 유사한 풀이인데 입력받는 형식이 조금 달라져서 익히기 위해 문제를 다시 풀어봤다! import Foundation let input = readLine()!.split(separator: " ").map{ Int(String($0))! } let n = input[0] let m = input[..
[프로그래머스/Swift] 배달
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제를 보고 처음에는 최단 거리를 구하는 문제니 BFS로 풀려고 했다. 그런데 풀다 보니 전에 C++로 풀었던 다익스트라를 사용해야겠구나! 생각했다. 그런데 priority_queue STL로 없어서 직접 구현해야 했다.. 코테를 풀 때 이래서 c++ 나 파이썬을 사용하는구나... 이걸 언제 다 구현하고 앉아있지..? Swift한테 너무 가혹한 거 아닌가요?ㅠㅠ 다익스트라 자체는 생각보다 쉽..
[프로그래머스/Swift] 연속 부분 수열 합의 개수
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 평소 연속 부분 수열 문제는 굉장히 많이 접해봤었다. 이 문제는 최대 범위가 1000으로 짧아서 시간 초과 안 나오겠지? 하는 마음으로 완전탐색을 구현했다. 문제에서도 알려주는데, 길이가 1~n(elements.count)개의 부분 수열의 합을 구하면 된다. 반복문을 돌리기 전에 나는 길이 1인 부분 수열의 합과 길이 n인 부분 수열의 합을 먼저 구해서 set에 넣었다. set을 사용한 이유는 ..
[프로그래머스/Swift] 할인 행사
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 길이가 100,000 여서 완전탐색으로 해봤다. 내가 사고 싶은 제품과 개수를 wanted라는 딕셔너리에 넣고, 할인 제품을 쭉 체크하면서 원하는 제품을 모두 샀는지 확인했다. 여기서 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치해야 한다고 했다. 그리고 제품의 총 개수 10이므로 무조건 10일 내의 제품을 모두 사야 한다는 것!!!! 그러므로 1일(0)부터 할인하는 날 - ..
[프로그래머스/Swift] 파일명 정렬
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 구현 문제! 간단히 문제를 정리해 보면 코드 순이 아닌, 파일명에 포함된 숫자를 반영한 정렬기능 구현하기 HEAD: 숫자가 아닌 문자로 이루어지고, 최소 한 글자 이상 NUMBER: 1~5 연속된 숫자. 00000-99999 TAIL: 나머지 부분. 숫자 혹은 아무 글자가 없을 수도 있음 이렇게 3가지로 나눈 후, 파일명을 정렬한다. 윗 조건이 같을 경우 밑 조건 ㄱㄱ 1. HEAD 기준으..
녕이
'programmers' 태그의 글 목록