본문 바로가기

분류 전체보기342

💯 Daily LeetCode Challenge Day_02 - Binary Tree Level Order Traversal II Account Login - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root). level 에 맞게 2개씩 짝짓는다. DFS 로 풀다가 트리의 depth 별로 접근하니 BFS 인가 싶어서 Queue를 쓰는.. 2020. 7. 3.
💯 Daily LeetCode Challenge Day_01 - Arranging Coins Account Login - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins. Given n, find the total number of full staircase rows that can be formed. n is a non-negative i.. 2020. 7. 1.
Swift 코딩 테스트 준비 - Java to Swift 😱 이번에 하계 인턴을 위한 코테를 칠 예정이다. 오늘 안내 메일을 받았는데 세상에나 Swift 언어만 지원한다고 한다. iOS직군이라 그런것 같으나 언어 제한을 둘 줄은 몰랐다. 평소에 Swift로 슬슬 풀어볼까 생각이 들었었는데 이 참에 Swift로 풀어야 겠다. 🤦‍♂️ 문자열 - 가운데 수 찾기 func solution(_ s:String) -> String { if(s.count%2==0){ let index1 = s.index(s.startIndex, offsetBy: s.count/2-1) let index2 = s.index(s.startIndex, offsetBy: s.count/2) return "\(s[index1])\(s[index2])" }else{ let index1 = s.inde.. 2020. 7. 1.
Programmers - 카펫 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr 문제 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return.. 2020. 6. 30.
Programmers - 숫자 야구 ⚾️ 코딩테스트 연습 - 숫자 야구 [[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] 2 programmers.co.kr 문제 문제 설명 숫자 야구 게임이란 2명이 서로가 생각한 숫자를 맞추는 게임입니다. 게임해보기 각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다. * 숫자는 맞지만, 위치가 틀렸을 때는 볼 * 숫자와 위치가 모두 맞을 때는 스트라이크 * 숫자와 위치가 모두 틀렸을 때는 아웃 예를 들어, 아래의 경우가 있으면 A : 123 B : 1스트라이크 1볼. A : 356 B : 1스트라이크 0볼. A : 327 B : 2스트라이크 0.. 2020. 6. 30.
Programmers - 소수찾기(완전탐색) 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 � programmers.co.kr 문제 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. 013은 0,.. 2020. 6. 30.
Programmers - ⚖️가장 큰 수 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 �� programmers.co.kr 문제 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰.. 2020. 6. 27.
Programmers - 라면공장🍜 코딩테스트 연습 - 라면공장 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니�� programmers.co.kr 문제 문제 설명 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니다. 해외 공장에서는 향후 밀가루를 공급할 수 있는 날짜와 수량을 알려주었고, 라면 공장에서는 운송비를 줄이기 위해 최소한의 횟수로 밀가루를 공급받고 싶습니다. 현재 공장에 남아있는 밀가루 수량 stock, 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 .. 2020. 6. 26.
Programmers - 위장 🔫 코딩테스트 연습 - 위장 programmers.co.kr 문제 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하.. 2020. 6. 25.
Programmers - 다리를 지나는 트럭🚛 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 문제 문제 설명 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4,.. 2020. 6. 25.
[🗂 Swift Data Structure] - Stack public struct Stack { private var storage : [Element] = [] public init(){} public init(_ element: [Element]){ storage = element } } extension Stack: CustomStringConvertible{ public var description:String{ """ --top-- \(storage.map{"\($0)"}.reversed().joined(separator: "\n")) ------ """ } public mutating func push(_ element: Element){ storage.append(element) } @discardableResult public mutating f.. 2020. 6. 25.
WWDC2020 미모지 만들기 1. 내 미모지를 만든다. 2. WWDC2020용 맥 커버 이미지를 다운받는다. 3. 에디터를 사용해서 겹친다. https://pixlr.com/kr/x/ 사진 에디터 : Pixlr.com - 온라인 무료 사진 편집 툴 Pixlr X를 통해 브라우저에서 고급 사진 편집 툴을 바로 실행할 수 있어요. 별도의 설치 또는 회원가입이 불필요! 컴퓨터, 태블릿, 스마트폰에서 언제 어디서나 무료로 이용하세요. pixlr.com 4. 완성! 2020. 6. 25.
Programmers - 기능개발 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 �� programmers.co.kr 문제 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배.. 2020. 6. 24.
Booth Algorithm 2020. 6. 23.
WWDC2020 키노트 후기 (정리) WWDC 2020 방구석에서 참여하였다.WWDC는YoutubeApple 홈페이지Developer App에서 시청할 수 있었다. 그냥 보면 놓치는 부분도 있을 것 같아서 함께 볼 수 있는 이벤트를 신청했다. 13분 정도 모여서 얘기를 나누며 2시까지 기다렸다. 나는 쭈구리라 듣고만 있었다. @주의: 키노트를 시청하며 쓴 글입니다. 두서가없고 맥락이 없으며 주로 제목과 이미지로 되있습니다. 키노트를 직접 보시는걸 추천드립니다 시작 전 여기 미모지들이 접속해 있는 실제 개발자라고 한다. 대박 시작전 2가지를 언급했다. App library자동으로 한페이지로 홈화면을 만들어 준다Widget여러 디자인과 사이즈의 위젯을 설정할 수 있다. 홈화면에 위젯을 위치시킬 수 있다.Picture in Picture Siri.. 2020. 6. 23.
컴퓨터 구조 용어 정리 1. An instruction cycle includes the following stages: Fetch, execute, and interrupt. 2. The ALU is that part of the computer that actually performs arithmetic and logical operations on data. 3. Among registers such as PC, IR, MBR, MAR, IR holds the last instruction fetched. 4. In a hardwired implementation the control unit is essentially a state machine circuit and its input logic signals are t.. 2020. 6. 22.
📕 잠깐 내가 이해한게 맞는지 정리 Dynamic Programming Greedy Back Tracking Branch and bound Greedy는 반례가 있어서 적용 안되는 경우가 있다. - 0-1 knapsack problem Greedy가 적용되지 않는 경우 Dynamic Programming 을 쓴다. Dynamic Programming 이 적용되지 않을 때 BackTracking을 쓴다. - Dynamic Programming 은 2^n의 부분집합을 검사하니까 오래걸리는데 이걸 Backtracking이 Tree 형태의 pruned state space tree 로 promising 하는 경우만 check 한다. Backtracking 에서 발전된게 Branch and bound 이다. 그리디는 local 한 최적해를 구하고 .. 2020. 6. 19.
😈 Greedy & Prims Algorithm (feat MST) 탐욕 알고리즘이란 답을 하나씩 고르는데 미리 정한 기준에 따라 매번 가장 좋아 보이는 답을 선택한다. *동적 프로그래밍과 마찬가지로 최적화 문제를 푸는데 사용된다. 동적 계획법과 다른점 동적 계획법 1. 재귀 관계식을 세워서 2. 입력 사례를 더 작은 입력사례로 분할 탐욕법 1. locally 최적의 경우 선택 2. 적절성 검사 3. 해답 점검 *전체적으로 최적인 해를 구하지만 항상 최적인 해를 얻는다는 보장이 없다. --> 최적인 해답을 얻는지 확인하는 절차가 반드시 필요하다. 거스름 돈 문제 : 동전의 개수가 최소가 되도록 거스름돈을 주는 문제 빈손으로 시작한다. 액면가가 가장 높은 동전을 집어 손에 올린다. (선택과정) 손에 있는 거스름 돈의 총액이 거슬러 주는 액수를 초과하는지 확인한다. (적절성.. 2020. 6. 18.
🍺 BDD - Beer Driven Development [경고] 이 글은 순 헛소리 이며 23학점 시험기간에 소소한 재미를 위해 쓴 글입니다. 🍺 BDD(Beer Driven Development) 의 정의와 효과 Goal BDD의 정의 - '맥주를 통해 결정과 피드백 사이 갭을 채울 수 있다.' BDD의 효과 - BDD는 언제, 어떻게 사용하면 좋을까 BDD를 활용하기 어려운 이유와 잘 하는 방법 프로그래머 외의 사람들에게는 BDD는 어떤 의미가 있을까 [들어가기전] BDD가 프로그래머에게만 해당된다고 생각하면 AFD(Alcohol Fueled Development)의 근본 개념을 망치는 것이다. BDD의 진짜 개념을 적용하기 위해서는 많은 시간이 걸릴 것이다. *Alcohol Fueled Development) https://wiki.c2.com/?Alc.. 2020. 6. 18.
🌌운영체제 구조 운영체제 역할 프로그램이 실행되는 환경을 제공해 준다. 운영체제가 가지는 목표 제공하는 서비스 사용자와 프로그래머에게 제공하는 인터페이스 시스템 구성요소와 그들의 상호연결 운영체제 구조 운영체제 서비스 사용자 인터페이스 제공 프로그램 실행 입출력 연산 파일 시스템 조작 통신 오류탐지 자원할당 기록작성 보호와 보안 시스템콜 운영체제에 의해 사용가능한 서비스에 대한 인터페이스를 제공 시스템 콜을 부르는 것 보다 API에 따라 프로그래밍 하는걸 선호하는 이유 프로그램 호환성 : 같은 API를 지원하는 어느 시스템에서건 컴파일 되고 실행될 수 있다. 시스템 콜은 자세한 명세가 필요하고 프로그래머가 작업하기 어렵다. RTE: 실행시간 환경 시스템 콜에 대한 연결고리를 하는 시스템 call Interface를 제공.. 2020. 6. 17.
🚗Process 프로세스란 실행 중인 프로그램이며 프로세스의 현재 활동 상태는 프로그램 카운터와 다른 레지스터로 나타난다. 현대 컴퓨팅 시스템의 작업 단위이다. *프로그램: 명령어 리스트를 내용으로 가진 디스크에 저장된 파일 *프로세스 자체가 다른 개체를 위한 실행 환경으로 동작할 수도 있다. 프로세스의 메모리 레이아웃 스택 - 함수를 호출할 때 임시 데이터 저장장소(함수 매개변수, 복귀주소, 지역변수) (아래로 메모리 확장됨) (스택과 힙 메모리가 만나면 안됨) (위로 메모리 확정됨) 힙 - 프로그램 실행 중 동적으로 할당되는 데이터 데이터 - 전역변수 텍스트 - 실행코드 프로세스 상태 준비 실행 대기 종료 프로세스 제어 블록 PCB 운영체제의 프로세스를 나타내는 커널 데이터 구조 프로세스 상태 프로그램 카운터 CPU.. 2020. 6. 16.