큐 (6) 썸네일형 리스트형 [프로그래머스] 다리를 지나는 트럭 난이도 : Lv 2 분류 : 스택 / 큐 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ bridge_length:Int, _ weight:Int, _ truck_weights:[Int]) -> Int { var bridge = Array(repeating: 0, count: bridge_length) var trucks = truck_weights var time = 0 var bridgeWeight = 0 while !bridge.isEmpty { time += 1 // 한 번 처리.. [프로그래머스] 프린터 난이도 : Lv 2 분류 : 스택 / 큐 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ priorities:[Int], _ location:Int) -> Int { var priority = priorities var pos = location var answer = 0 while true { if priority.first! == priority.max() { // 대기열 중 첫번째가 대기열 중 가장 우선순위가 높을 때 priority.removeFirst() // 대기열에서 지운다.. [프로그래머스] 올바른 괄호 난이도 : Lv 2 분류 : 스택 / 큐 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ s:String) -> Bool { var openCnt: Int = 0 // 열려있는 괄호의 갯수 for ch in s { if ch == "(" { openCnt += 1 // 괄호가 열려있다면 openCnt 에 1을 더한다. } else { openCnt -= 1 // 괄호가 닫혀있다면 openCnt 에 1을 뺀다. } guard openCnt >= 0 else { break // 괄호가 열리.. [자료구조] 자료구조 로드맵 자료구조란, 데이터를 상황에 맞게 저장하기 위한 구조입니다. * 아래 목록 중 링크가 활성화 되어 있는 것은 블로그에 정리 되어 있는 부분입니다. 단순 구조 정수 실수 문자 문자열 선형 구조 순차 리스트 연결 리스트 단순 연결 리스트 이중 연결 리스트 원형 연결 리스트 스택 큐 덱 비선형 구조 트리 일반 트리 이진 트리 그래프 방향 그래프 무방향 그래프 파일 구조 순차 파일 색인 파일 직접 파일 [자료구조] 큐 ( Queue ) 개요 맛집 대기줄 같은 자료구조 입니다. 큐의 가장 큰 특징은 선입선출( FIFO, First-In-First-Out ) 이며, 먼저 들어온 데이터가 먼저 나간다는 의미입니다. 구현하는 방식에 따라 오버헤드가 발생할 수도 있고, 발행하지 않을 수도 있습니다. 데이터는 마지막에 추가되므로, 데이터의 추가는 O(1) 의 시간복잡도를 갖습니다. 먼저 들어온 데이터가 제거되므로, Head 자체를 삭제하는 경우 배열을 하나씩 당겨줘야 하기 때문에 데이터의 제거는 O(n) 의 시간복잡도를, Head 를 가리키는 인덱스를 변경시킬 경우 데이터의 제거는 O(1) 의 시간복잡도를 갖습니다. Queue 를 이해하기 쉽게 그림으로 나타내면 아래와 같습니다. head Queue 에서 제일 먼저 제거할 테이터입니다. enque.. [프로그래머스] 기능 개발 난이도 : Lv 2 분류 : 스택 / 큐 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] { var tmpProgresses: [Int] = progresses var tmpSpeeds: [Int] = speeds var tmpCnt: Int = 0 var result: [Int] = [] while true { // while 문을 사용해 매일매일 진행한다. if tmpProgresses.isEmpty { i.. 이전 1 다음