티스토리

프로그래멍
검색하기

블로그 홈

프로그래멍

20201111start.tistory.com/m

백엔드 & 알고리즘

구독자
3
방명록 방문하기

주요 글 목록

  • [2] [개인공부] 스레드 세이프티(Thread safety) 활용. - synchronized vs cas Blocking 방식인 "synchronized"Non-Blocking 방식인 "CAS"무엇이 더 좋다기보다 서로 사용해야할 상황이 다르다는 것을 알게됐다.그렇다면 synchronized와 cas를 어떤 상황에 사용하는게 좋을지 알아보자. 동기공부중에 이런 궁금증이 생겨났다.블락 방식은 단순히 안전하고 느릴까? 논블락은 블락보다 항상 빠를까? 요청 실패 횟수가 많으면 성능에 영향을 미치진 않을까? 그래서 이런 고민들을 해결하기 위해 스스로 위 생각들에 대해 이론을 정리하고 실험해보기로 했다.아래 이론은 내가 공부하고 정리한 내용이기 때문에 정답은 아닐 수 있다 참고용으로만 봐주시길 바란다. 이론 이전의 카운트업 예시처럼, 멀티스레드로 공유변수에 대해 어떤 연산을 N회 수행하는 코드가 있다고 가정하자. 연.. 공감수 3 댓글수 2 2024. 4. 19.
  • [1] [개인공부] 스레드 세이프티(Thread safety) 이해. 오늘도 난 출근 준비를 한다. 아침에는 어찌나 일어나기가 싫은지 최대한 잠을 자게 된다. 그래서 난 늘 지각을 걱정하며 바삐 아침을 보낸다. 일어나서 식빵을 토스터기에 넣고 빵이 구워지는 동안 샤워를 한다. 샤워를 하며 뉴스를 듣고 오늘 무슨 옷을 입을 지 미리 생각한다. 이렇게하면 30분이면 출근 준비 완료다. 만약 이런 아침 준비 과정을 하나씩 진행한다면 족히 1시간은 걸리지 않을까..?  작업의 효율성동시에 여러 일을 할 수 있다면 시간을 절약할 수 있다. 시간을 절약한다는 것은 곧 일의 효율이 올라간다는 것이다.이 논리로 컴퓨터에서도 동시에 여러 작업을 처리하는 것이 빠를 것이라는 생각이 든다.  병렬 처리 vs 동시 처리여러 작업을 처리 할때 고려해야 할 사항이 있다.CPU는 멀티 코어를 지원하.. 공감수 1 댓글수 0 2024. 4. 10.
  • [0] [개인 공부] 스레드 세이프티(Thread safety) 앞으로 회사에 멀티스레드를 적용할 일이 있을 것 같아 관련 지식을 미리 공부를 해두려고 한다.3주라는 시간 동안 최대한 많이 배워서 회사에 기여하는것이 목표다.  주제스레드 세이프티(Thread safety)  일정3월26일 : 주제 선정4월9일 : 스레드 세이프티 문제 해결 방법 공유4월16일 : 더 나은 방법에 대한 고민 내용 공유 공감수 0 댓글수 0 2024. 3. 26.
  • [2] 인X타그램에서 게시물 작성 시 어떤일이 일어날까? - multipart/form-data편 HTTP의 ‘multipart/form-data’는 이미지, 텍스트, 비디오 등을 단일 HTTP 요청으로 전송할 수 있다는 이점이 있다.   파일 업로드와 파일 업로드 정보를 한번에 처리하여 성능을 높이자.인X타그램은 한 번의 API 요청으로 사진, 게시글 텍스트, 태그, 위치 정보 등을 전부 처리하고 싶을 것이다. 이렇게 하지 않으면 각 요청마다 추가적인 트래픽이 발생하고 서버 부하가 늘어날 수 있기 때문이다. 어플리케이션 서버에서는 클라이언트에서 전송한 multipart/form-data 형식의 요청을 해석해야 한다.이를 위해 Spring의 MultipartResolver는 HTTP 요청의 multipart/form-data를 해석하여 파일과 메타데이터를 추출하고 처리한다.   MultipartRes.. 공감수 1 댓글수 0 2024. 3. 19.
  • [1] 인X타그램에서 게시물 작성 시 어떤일이 일어날까? - multipart/form-data편 인X타그램에서 게시물 업로드 버튼을 누르면 무슨일이 일어날까? (아 물론 실제 인X타는 안그럴 수도 있음..) 인X타그램 데이터 프로세스 나는 인스타그램 업로드 과정을 5가지 단계로 정의했다.사진 선택업로드 요청서버에서 요청 처리파일 및 메타데이터(사진 관련 정보) 처리업로드 완료 및 후속 처리위 과정을 그림으로 정리하면 이런 느낌이다.  ‘통신’은 어떻게 되는걸까? 그렇다면 어떻게 내가 올린 게시물이 데이터 저장소까지 도달할 수 있는걸까? 그건 바로...우린 원하든 원하지 않든 웹(Web)세상에 살고 있다. 배민을 이용할 때도 로켓배송을 이용할 때도… 웹은 인터넷이라는 네트워크 상에서 동작하는 서비스다. 그리고 이 인터넷을 통해 서로 다른 서버끼리 통신을 할 수 있다.그래서 내가 업로드한 게시물은 인터.. 공감수 1 댓글수 1 2024. 3. 17.
  • [MySQL] 레코드 기반의 잠금이란? 락(Lock)이란?Database의 트랜잭션 처리의 순차성을 보장하기 위한 방법.레코드(Record)란?Database의 행 부분. Tuple이 레코드다.레코드 기반의 잠금 = 데이터의 튜플(인덱스)을 기준으로 Lock을 설정하는 행위.→ 따라서 레코드 기반의 잠금을 수행한다면, 높은 동시성 처리가 가능하며 안정적이며 성능이 뛰어나다. *만약 TABLE의 Index가 정의되지 않았다면?MySQL :: MySQL 8.0 Reference Manual :: 15.7.1 InnoDB Locking MySQL :: MySQL 8.0 Reference Manual :: 15.7.1 InnoDB LockingMySQL 8.0 Reference Manual  /  ...  /  The InnoDB Storage En.. 공감수 0 댓글수 0 2023. 3. 5.
  • 프로그래머스 가장 큰 수(Java) 풀이 문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=java 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원.. 공감수 0 댓글수 0 2023. 1. 9.
  • 프로그래머스 H-Index(Java) 풀이 문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42747?language=java 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과.. 공감수 0 댓글수 0 2023. 1. 9.
  • Intellij JSP file upload 문제 해결 에러 내용: 아티팩트 JDBC-WorkSpace:war exploded: 아티팩트 배포 중 오류가 발생했습니다. 자세한 내용은 서버 로그를 참조하세요. 로그 보기 더보기 에러로그 [2022-09-01 09:32:44,858] 아티팩트 JDBC-WorkSpace:war exploded: 아티팩트 배포 중입니다. 잠시 기다려 주세요... 01-Sep-2022 09:32:45.066 SEVERE [RMI TCP Connection(5)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke 메소드 [manageApp]을(를) 호출하는 중 예외 발생 java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생 at .. 공감수 1 댓글수 0 2022. 9. 1.
  • No suitable driver found for jdbc:postgresql://localhost:5432/database 에러 해결 인텔리제이 Tomcat 서버에서 postgresql 사용 시 org.postgresql.Driver를 찾지 못하는 문제 발생 해결 Tomcat->lib->postgresql jdbc driver 저장. *(Driver intallation link : https://jdbc.postgresql.org/download.html) 사용 환경: intellij, Maven, JavaEE-webapp 라이브러리 : Tomcat, Servlet(4.0.1), Postgresql(42.4.1) 참고 페이지 : https://stackoverflow.com/questions/19753004/classnotfoundexception-org-postgresql-driver-with-connection-pooling-ex.. 공감수 1 댓글수 0 2022. 8. 31.
  • 프로그래머스 정수 삼각형 파이썬 풀이 - 다이나믹프로그래밍(DP) 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 더보기 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 retu.. 공감수 1 댓글수 0 2022. 8. 23.
  • 프로그래머스 등굣길 파이썬 풀이 - 다이나믹프로그래밍(DP) 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 더보기 문제 설명 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타.. 공감수 1 댓글수 0 2022. 8. 23.
  • 프로그래머스(Programmers) lv2 조이스틱 파이썬(python) 풀이 프로그래머스(Programmers) lv2 조이스틱 파이썬(python) 풀이 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동.. 공감수 1 댓글수 0 2022. 8. 10.
  • 운영체제(OS) 디스크 스케줄링 정리 디스크 스케쥴링 디스크 스케쥴링 알고리즘 다중 프로그래밍 환경에서 여러개의 프로세스를 실행하려 한다고 할때, 보조기억장치에 저장된 여러개의 프로그램들을 메인메모리에 올려야 한다. 이때 프로세스 작업 처리 속도에 비해 보조기억장치에서 읽어오는 시간이 굉장히 오래 걸린다. 따라서 작업의 처리 효율을 위해 디스크 접근 시간을 최대한 절약하는게 중요하다. 이렇게 디스크에서 발생하는 처리 시간을 줄이는 알고리즘을 디스크 스케줄링 알고리즘이라 한다. 디스크 접근 시간 t = Seek time + rotational delay + transfer time 헤드가 물리적으로 이동하는 시간이 있기 때문에 지연 발생. Seek time 이 가장 크다. 따라서 seek time을 낮추면 지연시간을 줄일 수 있다. → HOW.. 공감수 1 댓글수 0 2022. 8. 10.
  • 프로그래머스(Programmers) 큰 수 만들기 파이썬(Python) 풀이 프로그래머스(Programmers) 큰 수 만들기 lv2 파이썬(Python) 풀이 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 양의 정수로 이루어진 배열 number에서 k 개의 수를 제거했을 때 얻는 가장 큰 수를 구하세요. number는 2자리 이상, 1,000,000자리 이하인 자연수 배열입니다. k는 number 자릿수 미만인 자연수입니다. 입출력 예 number k return "1924" 2 "94" "1.. 공감수 1 댓글수 0 2022. 8. 6.
  • 운영체제 11차시 질문 정리 Q2. 프레임 할당 중 동적 할당인 Working set model과 PFF(Page-Fault Frequency)에 대해 간단하게 설명해주세요. Working set model Locality에 기반하여 프로세스가 일정 시간 동안 원활하게 수행되기 위해 한꺼번에 메모리에 올라와 있어야 하는 page 들의 집합을 Working Set이라고 합니다. (프로세스는 특정 시간 동안 일정 장소만을 집중적으로 참조, 이 장소들의 집합을 working set이라 함) working set 메모리에 올라가 있는 페이지의 집합 working set window working set window 주로 델타로 표현 (고정) working set size 각 프로세스 별로 가장 많이 쓰이고있는 페이지의 개수 PFF(Page.. 공감수 1 댓글수 0 2022. 8. 1.
  • 프로그래머스 징검다리 건너기 파이썬(Python) 풀이 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 카카오 초등학교의 "니니즈 친구들"이 "라이언" 선생님과 함께 가을 소풍을 가는 중에 징검다리가 있는 개울을 만나서 건너편으로 건너려고 합니다. "라이언" 선생님은 "니니즈 친구들"이 무사히 징검다리를 건널 수 있도록 다음과 같이 규칙을 만들었습니다. 징검다리는 일렬로 놓여 있고 각 징검다리의 디딤돌에는 모두.. 공감수 1 댓글수 0 2022. 7. 20.
  • 프로그래머스 입국심사 파이썬(Python) 풀이 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/43238 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때,.. 공감수 2 댓글수 0 2022. 7. 20.
  • 운영체제 10차시 질문 정리 Q1. 페이지 폴트가 일어나는 상황과 벌어졌을 경우 어떻게 처리하는 지를 설명해주세요 → 오령기 페이지 테이블을 기준으로 본다면, cpu가 필요로 한 페이지에 접근할 때, 해당 페이지가 invalid일 경우에 해당한다. 이러한 상황을 page falut라고 합니다. 페이지 폴트 발생 시, 메인 메모리에 가용 공간이 있다면, 빈 공간에 해당 페이지를 적재하면 됨 메인 메모리에 가용 공간이 없다면, 메인 메모리의 어떤 페이지를 내보내야 함(victim) page fault rate을 최소화하는 페이지 교체 알고리즘 필요 → 페이지 폴트가 발생하지 않을 수록 메모리 관리가 잘 되고 있다는 뜻이다. Q2. 페이지 교체 알고리즘 중 FIFO 알고리즘과 OPT 알고리즘에 대해 설명해주세요. → 오령기 FIFO 알고.. 공감수 1 댓글수 0 2022. 7. 20.
  • 프로그래머스 [3차] 파일명 정렬 파이썬(Python) 풀이 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/17686 문제 설명 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, .. 공감수 1 댓글수 0 2022. 7. 13.
  • 운영체제 9차시 내부단편화 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비 되는 현상을 말한다. 작은 크기의 메모리 공간이 남아서 해당 메모리 사용 못함 외부단편화 여유 공간이 여러 조각으로 나뉘는 현상을 말한다. 즉 작업보다 많은 공간이 남아 있더라도 실제로 그 작업을 받아 들이지 못하는 현상을 말한다. 요청한 메모리 공간보다 더 남아있지만 메모리 공간이 연속적이지 않아 할당 못함 페이징(Paging) 페이징 기법(paging)은 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치로 부터 데이터를 저장하고 검색하는 메모리 관리 기법이다. 즉 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지(.. 공감수 1 댓글수 0 2022. 7. 13.
  • 백준 전화번호 목록 파이썬(Python) 풀이 문제링크: https://www.acmicpc.net/problem/5052 문제 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다. 예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자 긴급전화: 911 상근: 97 625 999 선영: 91 12 54 26 이 경우에 선영이에게 전화를 걸 수 있는 방법이 없다. 전화기를 들고 선영이 번호의 처음 세 자리를 누르는 순간 바로 긴급전화가 걸리기 때문이다. 따라서, 이 목록은 일관성이 없는 목록이다. 입력 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번.. 공감수 1 댓글수 0 2022. 7. 6.
  • Programmers (lv3) 디스크 컨트롤러 파이썬(Python) 풀이 출처: https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은.. 공감수 1 댓글수 0 2022. 6. 28.
  • 프로그래머스 (lv2) 배달 파이썬(Python) 풀이 문제 설명 N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 다음은 N = 5, K = 3인 경우의 예시입니다. 위 그림에서 1번 마을에 있는 음식점은 [1, 2, 4, 5] 번 마을까지는 3 이하의 시간에 배달할 수 있습니다. 그러나 3번 마을까지는 3시간 이내로.. 공감수 1 댓글수 0 2022. 6. 15.
  • Programmers (lv3) 가장 먼 노드 파이썬(python) 풀이 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 개수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 입출력 예 입출력 예 설.. 공감수 1 댓글수 0 2022. 6. 8.
  • Programmers (lv3) 베스트앨범 Python 풀이 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니.. 공감수 0 댓글수 0 2022. 6. 1.
  • 프로그래머스 lv3 이중 우선 순위 큐 파이썬 풀이 문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다. 빈 큐에 데이터를 삭제하라는 연산이 주어질 경우, 해당 연산은 무시합니다. 입출력 예 입출력 예 설명 16을 삽입 후 최댓값을 삭.. 공감수 1 댓글수 0 2022. 5. 25.
  • Programmers (lv2) 기능개발 파이썬(python) 풀이 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자.. 공감수 1 댓글수 0 2022. 5. 18.
  • Programmers (lv2) 프린터 파이썬(python) 풀이 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 .. 공감수 0 댓글수 0 2022. 5. 18.
  • LeetCode 2. Add Two Numbers Python 풀이 LeetCode 2. Add Two Numbers Python 문제 You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. 풀이 새 연결리스트 now에 l1+l2 를 해줌 carry 발생 시 다음 .. 공감수 1 댓글수 0 2022. 5. 11.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.