티스토리

프로그래멍
검색하기

블로그 홈

프로그래멍

20201111start.tistory.com/m

백엔드 & 알고리즘

구독자
3
방명록 방문하기

주요 글 목록

  • 프로그래머스 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.
  • 프로그래머스 정수 삼각형 파이썬 풀이 - 다이나믹프로그래밍(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.
  • 프로그래머스(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.
  • 프로그래머스 징검다리 건너기 파이썬(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.
  • 프로그래머스 [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.
  • 백준 전화번호 목록 파이썬(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) 풀이 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 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.
  • BOJ (1026) - 보물 문제 https://www.acmicpc.net/problem/1026 설명 S의 최솟값을 구하는 방법 -> (A 배열에서 작은 값) x (B 배열에서 큰 값) 소스코드 n = int(input()) A = list(map(int,input().split())) B = list(map(int,input().split())) A.sort() B.sort(reverse = True) sum = 0 for i in range(n): sum += A[i]*B[i] print(sum) 공감수 1 댓글수 0 2022. 5. 4.
  • BOJ (1475) - 방 번호 Python 아이디어 딕셔너리 자료형 사용해서 각 번호와 중복 카운트 수 로 나타냄 6과 9는 바꿔 쓸 수 있으므로 6에 통합 저장 총 6의 갯수가 짝수면 나누기 2 한 갯수 홀수면 나누기 2 + 1 갯수 딕셔너리 값 중에서 제일 큰 값을 가지는 원소를 출력 소스코드 # https://www.acmicpc.net/problem/1475 n = input() set = {'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0} for i in range(len(n)): if n[i] in ['6','9']: set['6'] += 1 else: set[n[i]] += 1 if set['6'] % 2 == 0: set['6'] = set['6'] // 2.. 공감수 1 댓글수 0 2021. 5. 1.
  • BOJ (2941) - 크로아티아 알파벳 Python 아이디어 크로아티아 알파벳 목록 리스트를 alpha 에 저장한다. alpha 값이 입력받은 값 안에 있으면 해당 입력받은 값 안의 알파 값의 크기를 1로 잡는다. 변경된 입력받은 값의 크기를 출력한다. string = d d z = z = string = d d z = z = string = d z = string = d string 의 크기 = 3 소스코드 # https://www.acmicpc.net/problem/2941 alpha = ['c=','c-','dz=','d-','lj','nj','s=','z='] string = input() count = 0 for i in alpha: if i in string: string = string.replace(i," ") print(string) pr.. 공감수 0 댓글수 0 2021. 5. 1.
  • BOJ (1449) - 수리공 항승 Python 아이디어 시작점 = st 와 loc의 현재 값 = now 놓는다. 처음 : 현재 값 now 이므로 now +L -1 만큼은 수리가 가능하다. 따라서 현재 값을 now +L -1 로 바꾼다. cnt+1 이후: 만약 현재값이 시작점보다 크거나 같다면 새로운 테이프의 범위이므로 현재값을 now +L -1로 다시 바꿔준다. cnt +1 반복 소스코드 # https://www.acmicpc.net/problem/1449 N, L = map(int,input().split()) loc = list(map(int,input().split())) st = 0 cnt = 0 for now in loc: if st < now: st = now+L-1 cnt+=1 print(cnt) 공감수 1 댓글수 0 2021. 4. 30.
  • BOJ (13417) - 카드 문자열 Python 아이디어 cards 리스트에서 제일 첫번째 카드를 기준 카드로 설정 기준 카드보다 ASCII 번호 작다면 왼쪽, 크다면 오른쪽 삽입 소스코드1 # https://www.acmicpc.net/problem/13417 T = int(input()) for _ in range(T): N = int(input()) cards = list(map(str, input().split())) my = [cards[0]] for i in range(1,N): if ord(cards[i]) 공감수 0 댓글수 0 2021. 4. 28.
  • BOJ (2217) - 로프 Python 아이디어 rope 리스트 큰 수 부터 정렬 rope 리스트 값과 갯수만큼 다 곱한 결과가 제일 큰 값을 출력 10 17 13 8 20 21 11 1. 적용 21 20 17 13 11 10 8 2. 적용 21 40 51 52 55 60(max) 56 출력 : 60 소스코드 #https://www.acmicpc.net/problem/2217 import sys input = sys.stdin.readline N = int(input()) rope = [] for _ in range(N): rope.append(int(input())) rope.sort(reverse = True) for i in range(N): rope[i] = rope[i]*(i+1) print(max(rope)) 공감수 0 댓글수 0 2021. 4. 28.
  • BOJ (2827) - 우리집엔 도서관이 있어 Python 아이디어 모든책을 현재 순서대로 bks 리스트에 입력받음 bks 리스트에서 제일 큰 수 찾음 = _max _max의 위치를 기준으로 up과 down으로 리스트를 나눔 up에 있는지 확인, 만약 있으면 _max의 위치를 기준으로 다음 큰 수가 up 에 없으면 down에서 찾고 count 반복 3(up) 9(up) 7(up) 10(기준) 6(down) 4(down) 5(down) 1(down) 2(down) 8(down) 소스코드1 #https://www.acmicpc.net/problem/2872 #input import sys N = int(sys.stdin.readline()) bks = [] _max = 0 cnt = 0 for _ in range(N): item = int(sys.stdin.read.. 공감수 1 댓글수 0 2021. 4. 27.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

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

    © Kakao Corp.