프로그래머스 (8) 썸네일형 리스트형 프로그래머스 - L1 키패드 누르기 설계위치를 나타내고 거리 계산이 되는 객체 필요왼쪽, 오른쪽 현 위치를 나타내는 변수 및 업데이트 필요키패드들의 위치를 담고 있는 변수 필요numbers 순회하여 진행 git : 키패드 누르기문제 : https://school.programmers.co.kr/learn/courses/30/lessons/67256 문제 풀이미리 정의 된 값들의 값 정의문제의 제시 된 키패드대로 keypadPositions 딕셔너리에 값 할당오른쪽 손, 왼쪽 손의 위치 초기화numbers를 순회하여, 기본적으로 오른손으로 수행 위치이면 수행, 왼쪽 수행 위치이면 수행하며, 거리 계산이 필요한 경우 거리 계산 후 규칙대로 수행결과 반환import Foundation func solution(_ numbers:[Int], _ .. 프로그래머스 - L2 예상 대진표 설계짝수인 경우 자신의 값 - 1 과 대결하고, 홀수인 경우 자신의 값 + 1과 대결다음 라운드 배정 받는 수는 자신의 값 / 2 올림위 규칙을 반복하여 대결 번호가 겹치는 경우 break 및 반환 git : 예상 대진표문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12985 문제 풀이frontOpponent 은 frontNumber의 상대 번호, backOpponent은 backNumber의 상대 번호if(frontOpponent == backNumber) 인 경우 a, b가 대결하게 되는 경우 이므로, break그렇지 않은 경우는 다음 라운드시 배정받는 번호를 부여 및 라운드 수를 올린다. import Foundation // 홀수는 .. 프로그래머스 - L1 옹알이 (2) 설계옹알이 문자열에서 문자를 하나씩 순회하여 빈 문자열에 삽입삽입 될 때마다 가능한 옹알이 인지 확인가능하게 되면 문자열을 비어주고, 인덱스 체크최종적으로 문자열이 비어있으면 가능 옹알이 git : 옹알이 (2)문제 : https://school.programmers.co.kr/learn/courses/30/lessons/133499문제 풀이possibleBabble 가능한 옹알이를 상수 배열 선언babble.reduce( …. ) 문자를 하나씩 순회하면서 문자를 더 해나간다. 가능한 옹알이 단어 일 경우 문자열을 빈 문자열로 초기화, 인덱스 저장해놓기결과적으로 문자열이 비어있으면 가능한 옹알이let possibleBabble = ["aya", "ye", "woo", "ma"] func solution(.. 프로그래머스 - L2 짝지어 제거하기 설계문자열을 순회해서 stack에 넣기 전에 맨 윗부분을 검사해서 같은 경우 pop, 다른 경우 push순회가 끝났을 때 stack이 빈 경우면 조건에 만족 git : 짝지어 제거하기문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12973문제 풀이if let peek = stack.last 에서 nil 인 경우 stack이 빈 경우이므로 stack.append(alphabet) 추가하기nil이 아닌 경우 peek 값과 순회하는 알파벳을 확인하여 같은 경우면 연속적이기 때문에 pop 아닌 경우 추가해주기func solution(_ s:String) -> Int{ var answer:Int = 0 var stack: [String] = [] .. 프로그래머스 - L2 피보나치 수 설계n 만큼 배열을 생성해 2…n 범위를 순회하여, 피보나치 규칙에 맞게 배열을 채워나가는 방법! git : 피보나치 수문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12945문제 풀이원하는 크기만큼 배열을 생성0, 1번째 기본 0, 1 채워넣기입력 받은 수 만큼 for 순회하여 생성 된 배열을 채워준다.배열의 맨 마지막 수을 반환 값으로 출력// n은 2 이상 100,000 이하의 자연수 func solution(_ n:Int) -> Int { var fibonacciArray = Array(repeating: 0, count: n + 1) fibonacciArray[0] = 0 fibonacciArray[1] = 1 for index .. 프로그래머스 - L2 JadenCase 문자열 만들기 설계문자열을 lowercased로 변환하여 통일한다공백으로 split한 배열을 순회하여 첫 글자를 upperCased로 변환한다 git : JadenCase 문자열 만들기문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12951문제 풀이설계대로 진행하려 했으나, split 된 문자열의 다시 첫번째를 변환이 까다롭다고 생각하였습니다.그래서 문자열을 순회하여 첫 글자와 공백이 나온 다음 글자를 대문자 변환하여 진행하였습니다.import Foundation func solution(_ s:String) -> String { var stringArray = Array(s.lowercased()).map{ item in return String(it.. 프로그래머스 - L2 최댓값과 최솟값 아직 많이 부족하나 레벨 2 관련 문제들도 시작하였습니다 하하!설계문자열을 split하여 나눠 순회하여 min, max 판별하기! git : 최댓값과 최솟값문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12939문제 풀이설계대로 진행하였으며, 음수 문자의 Int 캐스팅 또한 지원합니다!func solution(_ s:String) -> String { let splitArray = s.split(separator: " ") var min = Int.max var max = Int.min splitArray.forEach{ item in guard let number = Int(item) else { return } if(min > numb.. 프로그래머스 - L1 기사단원의 무기 설계약수 개수를 구할 수만 있다면, 스무스하게 풀릴거 같습니다.소수 개수 판단법 확인했을 때, number의 제곱근만큼 확인했던 기억을 살려 활용해보자. git : 기사단원의 무기문제 : https://school.programmers.co.kr/learn/courses/30/lessons/136798문제 풀이numbers 를 순회하여 index + 1의 약수의 개수를 넣어주기약수 개수 반환 알고리즘은 number의 제곱근만큼 반복하여 나눠줘서 나머지가 없는 경우 카운팅을 해주는데, 예를들어 16의 약수 개수를 카운팅한다고 했을때, 2 * 8 은 두 개로 카운팅되지만, 4 * 4는 하나로 카운팅해야하므로, 나눈 값과 몫을 확인해야한다!약수 개수가 채워진 numbers를 limit 이하 만큼 필터해준 뒤,.. 이전 1 다음