본문 바로가기

분류 전체보기51

[프로그래머스] 전화번호 목록(JAVA) / 해시 Level2 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 컬렉션 함수를 잘 이용하면 간단히 풀릴 문제였는데 적절한 사용을 못하고 슬라이딩 윈도우로 풀다가 인덱스바운더리 에러만 맛봤다... 가슴이 아파서 정리해둔다 내가 참 간과한 것이 있는데, String 배열도 배열이라 Arrays.sort() 가 사용가능 하다는 점, 그리고 사전순서대로 정렬이 된다는 점이다. 대체 왜 막연히 길이가 짧은 순서대로 정렬이 된다고 생각했던 걸까... 아래와 같이 시험해보.. 2023. 3. 17.
[프로그래머스] 위장(JAVA) / 해시 Level2 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 경우의 수 성질을 이용하면 간단하게 해결될 문제였는데... 삽질을 엄청 했다. 쉽게 풀 수 있는 문제를 순열까지 구현해서 돌려가며 코딩했는데... 케이스 하나에서 시간초과가 나서 실패했다. 틀린 코드 5개 종류의 옷이 입력으로 주어졌다고 했을 때 1개 종류만 입을 경우, 2개 종류만 입을 경우 ... 등을 구하고 각 경우마다 해당 종류의 옷이 몇개 인지 확인해서 경우의 수를 구했다. 시간을 .. 2023. 3. 17.
AWS SNS vs. SQS (feat. Lambda) 프로젝트에서 푸시알림 기능을 맡아 사용할 기술을 찾아보던중 AWS SNS 라는 것을 처음 접했다. 단순히 푸시알림을 구현하는 데만 신경쓴다면 FCM을 사용해도 상관없겠지만 AWS SNS에 Lambda, SQS 등을 함께 사용하면 추후 기능을 확장하는데 용이할 것이라 생각되어 AWS SNS를 쓰기로 정했다. Lambda 란 Lambda는 AWS에서 제공하는 서버리스 컴퓨팅 플랫폼 이다. 서버리스(Serverless) ? 서버리스(Serverless)는 클라우드 컴퓨팅의 모델 중 하나로 개발자가 서버를 직접 관리할 필요가 없는 아키텍처를 의미한다. 서버리스는 동적으로 서버의 자원을 할당한다. 사용자가 없다면 자원을 할당하지 않고 대기하다 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태.. 2023. 3. 7.
[프로그래머스] 합승 택시 요금(JAVA), 다익스트라, 2021 KAKAO BLIND RECRUITMENT https://school.programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 school.programmers.co.kr 풀이 다익스트라를 이용해 최단거리를 구하는 문제다. 주의할.. 2023. 2. 27.
[프로그래머스] 파괴되지 않은 건물(JAVA), 2차원 배열 누적합, 2022 KAKAO BLIND RECRUITMENT https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 누적합을 이용해서 시간복잡도를 줄이는 문제는 처음봤다... 정확도 테스트케이스는 간단히 브루트포스로 풀면 맞출 수 있으나 그 경우 O(N*M*K) 가 되어 효율성 테스트케이스가 모두 시간초과가 난다. 효율성 테스트를 통과시키기 위해선 누적합 개념을 알고 있어야 한다. (효율성 정답률이 2%도 안되는 걸 보아 개념을 알았어도 이용할 생각을 하기는 쉽지 않아 보인다..^^) 누적합 arr = [3, .. 2023. 2. 23.
[OS] 스레드(Thread) 개념과 특징, 프로세스 vs 스레드, 멀티 스레드(Multithreaded Programming) 스레드(thread)란? 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. ● 프로세스(process)에서 실행 단위(execution state)를 분리 시킨 개념 - execution state : PC, SP, registers, etc. ● 스레드는 같은 주소 공간(address space)를 공유(share)한다. - Code, Global variables, Heap, Opened files ● 각각의 스레드가 가지고 있는 것 - PC&SP 를 포함한 레지스.. 2023. 2. 22.