전체 글 391

[프로그래머스] 덧칠하기 (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..

async/await 로 비동기 처리 하기 (Swift)

비동기(Asynchronous)란 한 작업이 다른 작업의 완료를 기다리지 않고 독립적으로 실행되는 것을 의미합니다. 동기(Synchronous) 방식에서는 한 작업이 완료될 때까지 다음 작업이 실행되지 않지만, 비동기 방식에서는 한 작업이 시작되면 완료 여부와 관계없이 다음 작업을 실행할 수 있습니다. 비동기 작업은 대개 네트워크 요청, 파일 입출력, 데이터베이스 쿼리 등과 같이 시간이 오래 걸리는 작업에 사용됩니다. 이러한 작업은 완료까지 시간이 오래 걸릴 수 있으므로, 동기적으로 처리하면 전체 프로그램이 작업의 완료를 기다리는 동안 멈추게 됩니다. 하지만 비동기 방식을 사용하면 한 작업이 실행되는 동안 다른 작업을 수행할 수 있어 전체적인 성능과 응답성이 향상됩니다. 비동기 작업을 처리하는 방법은 여..

[프로그래머스] 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한다 ..

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT[1차] 프렌즈4블록 (Swift)

5,10번에서 막힘 전 - 같은 열에 있는 문자의 행을 위,아래 교환하여 풀었음 후 - 하위 행에서 상위행으로 탐색하도록 순서를 변경 하였고, 비어있을 경우 하위행에서 비어있지 않은 가장 가까운 행의 값으로 변경하고 그자리는 비워두도록 하였다. 이유: 2x2일 경우 한번에 지우고 비어 있는 가장 낮은 곳으로 한번에 자리해야함 1. board의 요소를 한 문자씩 나누어 가지도록 함 이유 -> 게임판처럼 만들기 위함?? boardArray 문자열 2차원 배열에 매핑하였음 2. boardArray의 2x2의 문자가 모두 같으면 setCordi에 추가하도록함 이유: 겹쳐져서 없어져야 될 수도 있기 때문에 set을 이용함 3. setCordi에 들어간 값들은 없어져야 할 값들이기 때문에 boardArray에 위치..

[프로그래머스] 공원 산책 (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..

[프로그래머스] 달리기 경주 (Swift) <11,12,13 시간초과>

https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 변수 설정 - dic key값 : "이름" , value 값 : 순서 -dic2 key값 : 순서 , value 값 : "이름" - result 결과값 - 1등 부터 순서대로 담은 배열 풀이) 1.dic, dic2에 등수,이름 값을 가지도록 함 2. callings 배열을 순서대로 비교함 - dic[name] - 1 은 호명된 선수가 제친 선수의 이름임 (preName) - dic[preName..

[프로그래머스] 카드뭉치 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 변수) cards1Index : cards1의 인덱스 (0부터 차례로 받을 것임 ) cards2Index :cards2의 인덱스 (0부터 차례로 받을 것임 ) 풀이 1. goal 문자열 배열을 반복문으로 접근해서 다음 조건문의 조건을 판단하여 맞으면 Index의 값을 증가함 2. 조건이 맞을 경우 Yes 반환 아닐 경우 반복문 도중에 No 반환 오답 (테스트 1 - 런타임 에러) 이유 : car..