[프로그래머스] 큰 수 만들기
Algorithm 2022. 2. 7. 16:40

▼ 문제 링크 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 처음에는 문제를 읽고 다음과 같이 단순한 과정을 거쳐 풀이를 시도했다. 1) k개의 숫자를 제거한 모든 조합의 숫자 구하기 2) 1)에서 구한 숫자 중에서 가장 큰 수 구하기 그러나, 이렇게 했더니 1, 11, 12번 테스트케이스 말고는 전부 시간 초과로 실패했다. 😢 한참을 고민해 본 결과, 이건 내가 지금처럼 생각해서는 시간 초과를 해결할 수 없을 거라고 생각했고... 결국 구글링의 힘을 빌렸다. 😭 💡문제 해결 포인트 이 문제에서는 숫자의 순서가 뒤섞이지 않는다! 문제 내 설명에 이런 문장이 있다. "예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. ..

[자료구조] 스택(Stack)과 큐(Queue), 배열(Array)과 연결 리스트(Linked List)
Computer Science 2021. 10. 14. 19:00

스택(Stack) v. 쌓다, 포개다 n. 무더기 선형 자료구조의 일종으로, 그림처럼 입력할 때는 아래부터 차곡차곡 데이터를 쌓은 뒤, 출력할 때는 가장 위에서부터 데이터를 꺼낸다. 가장 늦게 입력된 데이터가 가장 먼저 출력되는 LIFO(Last In, First Out)구조. 큐(Queue) v. 줄을 서서 기다리다 n. 대기 행렬 선형 자료구조의 일종으로, 아래위가 뚫린 원통처럼 입력할 때 가장 먼저 들어간 데이터가 출력할 때 가장 먼저 사용된다. 가장 먼저 입력된 데이터가 가장 먼저 출력되는 FIFO(First In, First Out)구조. 배열(Array) v. 배치하다, 배열하다 n. 배열 배열이란, 논리적 저장 순서와 물리적 저장 순서가 일치하는 가장 기본적인 자료구조다. 배열은 인덱스와 인..

[코딜리티] Stone Wall - Stack과 Queue
Algorithm 2021. 7. 1. 16:35

▼ 문제 링크 StoneWall coding task - Learn to Code - Codility Cover "Manhattan skyline" using the minimum number of rectangles. app.codility.com 영어로 된 문제가 너무 난해해서 이해하기 너무 어려웠던 문제.(사실 아직도 문제는 무슨 소린지 모르겠음;;) 벽돌을 쌓네 마네 하는 것들은 일단 뒤로 재쳐두고, 주어진 배열만 보고 유추해서 풀었다. # 풀이 1 FIFO Queue를 이용한 풀이 import Foundation import Glibc public func solution(_ H : inout [Int]) -> Int { var count = 0 // use queue while !H.isEmp..

[프로그래머스] 짝지어 제거하기 - 효율성 통과하기
Algorithm 2021. 6. 29. 23:20

▼ 문제 링크 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr # 풀이 1 가장 첫 중복 요소를 확인하고 제거하는 함수 사용 import Foundation func solution(_ s: String) -> Int{ var chars = [Character]() var overlap = true s.forEach { // String을 [Character]로 변환 chars.append($0) } repeat { overlap = checkOverlap(chars).0 chars = check..