본문 바로가기

Algorithm

[Algorithm] 공원 산책 (w/ Swift) 공원 산책 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 배열 park, 로봇 강아지가 수행할 명령이 담긴 문자열 배열 routes가 매개변수로 주어질 때, 로봇 강아지가 모든 명령을 수행 후 놓인 위치를 [세로 방향 좌표, 가로 방향 좌표] 순으로 배열에 담아 최종적으로 로봇 강아지가 명령 수행 후 놓인 위치 좌표 puppy를 return 하는 함수를 구해보자. var map = Array(repeating: Array(repeating: "", count: w), count: h) var puppy = [0, 0] for i in 0.. 더보기
[Algorithm] 달리기 경주 (w/ Swift) 달리기 경주 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr language = swift func solution(_ players:[String], _ callings:[String]) -> [String] { var yeon = players var runner: [String: Int] = [:] for (index, player) in players.enumerated() { runner[player] = index } for calling in callings { var index = runner[calling]! yeon.swapAt(index.. 더보기
[Algorithm] 개인정보 수집 유효기간 (w/ Swift & Python) 개인정보 수집 유효기간 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 현재 날짜(today), 데이터 보관 기간을 정의하는 조건(terms), 그리고 개인정보 수집 날짜(privacies). 코드의 목적은 보관 기간이 만료된 정보의 인덱스를 찾아내는 것 laguage = swift func solution(_ today: String, _ terms: [String], _ privacies: [String]) -> [Int] { var yeon = [Int]() var termDict = [String: Int]() let date = myDate(tod.. 더보기
[Algorithm] 배열의 길이에 따라 다른 연산하기 (w/ Swift & Python) 배열의 길이에 따라 다른 연산하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr language = swift 배열의 길이와 인덱스의 홀짝성(?)에 따라 값을 반환하도록 해야 하는데, enumerated 함수를 사용하여 배열의 각 요소에 인덱스를 부여하고, ( → offset 사용) map 함수를 아용하여 각 요소를 조건에 따라 변환하면 된다. func solution(_ arr: [Int], _ n: Int) -> [Int] { return arr.enumerated().map { if arr.count % 2 == 1 { return ($0.offse.. 더보기
[Algorithm] 배열 두 배 만들기 (w/ Swift & Python) 배열 두 배 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr laguage = swift map으로 기존 데이터를 변형하지 않고 새로운 컨테이너를 만들어 아래와 같은 코드를 짤 수 있다. for - in 구문에 비해 코드가 훨씬 간결하고 컨파일러 최적화 성능이 좋다. func solution(_ numbers:[Int]) -> [Int] { return numbers.map(){$0 * 2} } 위의 코드를 for - in 구문으로 아래처럼 수정할 수 있다. func solution(_ numbers:[Int]) -> [Int] { var doubl.. 더보기
[Algorithm] 햄버거 만들기 (w/ Swift & Python) 햄버거 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 햄버거는 빵-야채-고기-빵 [1,2,3,1] 의 순서대로 쌓아야 한다. 재료들을 쌓으면서, 햄버거의 순서인 [1,2,3,1]이 나오면 포장할 수 있는 개수를 늘린다. 마지막 요소 4개가 [1,2,3,1]이라면, Pop을 시켜 Stack에서 없애주고, 마지막 요소가 4개가 아니면 햄버거를 포장할 수 없다. language = swift stack과 continue 구문을 사용한다. stack의 길이가 4 미만일 경우 (stack에 저장된 요소의 수가 4개 미만일 경) 아래의 코드를 실행하지 않고 .. 더보기
[Algorithm] 둘만의 암호 (w/ Swift & Python) 둘만의 암호 (shortcuts) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr language = swift 스위프트에서 문자열 ↔️ 아스키코드 변환 String to Ascii: Int(UnicodeScalar("A").value) Ascii to String: String(UnicodeScalar(65)!) import Foundation func solution(_ s:String, _ skip:String, _ index:Int) -> String { // a,z 아스키코드 구해놓기 var aAscii = Int(UnicodeScalar("a").. 더보기
[Algorithm] 대충 만든 자판 (w/ Swift) keymap과 targets라는 두 개의 문자열 배열을 입력 받아 결과를 return하는 문제 대충 만든 자판 (shortcuts) func solution(_ keymap: [String], _ targets: [String]) -> [Int] { var dict = [String: Int]() var keymap = keymap.map { $0.map { String($0) } } var result = [Int]() for k in keymap { for i in k { if dict[i] == nil { dict[i] = k.firstIndex(of: i)! } else { dict[i] = min(dict[i]!, k.firstIndex(of: i)!) } } } for target in tar.. 더보기