프로그래머스 189

[프로그래머스] 타겟넘버 (Swift) ※1,2번 실행초과

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DFS 깊이 우선 탐색 알고리즘으로 푼 코드 - 탐색하려는 노드의 자식 노드부터 우선 탐색하는 방식 import Foundation func solution(_ numbers:[Int], _ target:Int) -> Int { var count = 0 func dfs(index: Int, sum: Int) { if index == numbers.count{ if sum == target { co..

[프로그래머스] 피로도 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import Foundation func solution(_ k:Int, _ dungeons:[[Int]]) -> Int { var result = 0 //최대 던전수 //모든 경우의 수를 생각해봐야 하기 때문에 재귀 함수 사용 func visit(_ orders: [Int]){ //3. orders에 가야할 던전의 순서가 정해질 경우 if orders.count == dungeons.count{..

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT[3차] 압축 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. Unicode와 딕셔너리를 이용해 key값을 A - Z (String)까지 value 값을1 -26 (Int)까지 알맞게 데이터 저장 2. 파라미터 msg의 인덱스를 이용하여 문자열을 잘랐음 3. 자른 문자열을 딕셔너리가 가지고 있지 않을때를 기준으로 dic에 데이터를 저장하도록 하였음 이때 두개 이상의 문자길이를 가지고 있을 경우 다음 입력의 순서를 건너 뛰어야 하므로 wcount를 ..

[프로그래머스] 2개 이하로 다른 비트 (Swift) -10,11 실행초과

https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ numbers의 수들을 차례로 1씩 늘려서 비트를 비교하게 되면 10,11 실행초과 ※ - radix 메서드를 이용해 2진수로 변환 규칙을 찾아서 문제 해결 1. 마지막 자리비트가 0이면 1을 더함 - (10진수에 1을 더함) ex) 10진수 2 - 0010 -> +1 -> 0011(3) 2. 모든 비트가 1일 경우 비트 맨 앞자리에 1을 삽입하고 Index 1을 0으로 변환 ex) 10진수 ..

[프로그래머스] 덧칠하기 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) 1.벽을 표현하는 array를 만들어 줬음(array를 0으로 n개 채움) 2. section의 위치를 파악해 벗겨진 위치에 1을 넣어주도록 함 - section의 위치는 1부터 새서 인덱스와 일치시키도록 -1을 해줌 3. 인덱스 0 (벽의 1번 )부터 벽의 길이-붓의길이-1까지를 차례로 탐색해 1이 있으면 벽에 덧칠해주었음 ex)붓의 길이(m)가 4라고 가정했을때 벽의 1(p)번부터 4..

[프로그래머스] 2021 Dev-Matching: 웹 백엔드 개발자(상반기)행렬 테두리 회전하기 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import Foundation func solution(_ rows:Int, _ columns:Int, _ queries:[[Int]]) -> [Int] { if queries == [[1,1,rows,columns]]{ return [1] } // 가장 테두리 수만 회전할 경우 var board: [[Int]] = [[Int]]() //행렬 생성 let max = rows * columns /..

[프로그래머스] 연속 부분 수열 합의 개수 (Swift) ※10,20번 시간초과 해결

https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) - 중복된 값을 가지지 않는 Set의 특징을 사용해서 풀었다. 10,20 실행 초과 이유 - elements + elements로 생성한 변수를 사용하면 더 오래걸림 -> 나머지를 이용해 elements로만 찾게 될 경우 문제를 해결할 수 있었음 - array로 .contains 메서드를 이용하면 찾는 시간때문에 더더욱 오래 걸림 1. Int자료형 빈 Set을 만들었다. 2. 1부터 el..

[프로그래머스] Summer/Winter Coding(~2018) 방문 길이 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이) 1. dirs문자열의 각 문자에 접근해서 위,아래,좌,우 어디로 갈것인지 파악한다. 2. 이동하기 전 좌표를 preCoordinate 문자열로 생성하였다. 이동후 좌표는 postCoordinate문자열로 생성하였다. 3. dirs의 문자가 "U"라면 현재위치 now의 Y좌표인 인덱스 1을 +1한다. 이때 5를 넘어가면 안되니 조건을 걸어줌 "D"는 now의 Y좌표 인덱스 1을 -1한다 ..

[프로그래머스] 공원 산책 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. park 가 문자열배열로 이루어져 있어서 보기 불편했음 매핑해서 한단어씩 가지는 2차원 문자열 배열 parkArray로 변환하였음 2. 시작지점 S를 찾아 location(현재 위치로 지정하였음) 3. routes도 공백이 있어서 보기 불편했음 공백을 기준으로 나누어 2차원 문자열배열 array로 변환하였음 0번째 인덱스는 방향 - E,WN,S 1번째 인덱스는 거리 - 1~9사이 숫자..

[프로그래머스] 추억 점수 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 변수 설정 - yearningDic : String 형의 Key값으로 그리워하는 사람의 이름, Int 형의 value 값으로 그리움 수치 - result : 추억 점수를 담은 배열 - sum : 2차원 배열의 1행의 그리움 합산한 값 풀이) 1. yearningDic 딕셔너리에 key값과 value를 가지도록함 2. 2차원 배열의 1행(1차원 배열)마다 그리운 사람이 있는지 확인하여 있으면 su..