반응형

파이썬 45

[백준] 1966: 프린터 큐 (Python)

프린터 큐 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를..

[백준] 9012: 괄호 (Python)

괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에..

[백준] 10799: 쇠막대기 (Python)

쇠막대기 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이..

[프로그래머스] 크레인 인형뽑기 게임 (Python)

크레인 인형뽑기 게임 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입..

[백준] 1388: 바닥 장식 (Python)

바닥 장식 https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net 문제 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나무 판자는 크기 1의 너비를 가졌고, 양수의 길이를 가지고 있다. 기훈이 방은 직사각형 모양이고, 방 안에는 벽과 평행한 모양의 정사각형으로 나누어져 있다. 이제 ‘-’와 ‘|’로 이루어진 바닥 장식 모양..

[이취코] 알고리즘 유형별 기출문제: 구현 - 8. 문자열 재정렬 (Python)

8. 문자열 재정렬 facebook 인터뷰 기출 문제 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력하라. 예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력한다. 조건 입력: 첫째 줄에 하나의 문자열 S가 주어짐 (1≤S의 길이≤10,000) 출력: 첫째 줄에 문제에서 요구하는 정답을 출력함 예시 K1KA5CB7 → ABCKK13 AJKDLSI412K4JSJ9D → ADDIJJJKKLSS20 풀이 문자열 S를 순회하며 해당 문자가 알파벳 대문자면 문자열만 저장하는 변수에 더하고 숫자면 형변환 후 더하여 출력 sorted()의 시간 복잡도가 O(nlogn)이니까..

[이취코] 알고리즘 유형별 기출문제: 구현 - 7. 럭키 스트레이트 (Python)

7. 럭키 스트레이트 문제 게임의 아웃 복서 캐릭터는 필살기인 “럭키 스트레이트” 기술이 있다. 이 기술은 매우 강력한 대신 게임 내에서 점수가 특정 조건을 만족할 때만 사용할 수 있다. 특정 조건이란 현재 캐릭터의 점수를 N이라고 할 때 자릿수를 기준으로 점수 N을 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합을 더한 값이 동일한 상황을 말한다. 예를 들어 현재 점수가 123,402라면 왼쪽 부분의 각 자릿수의 합은 1+2+3, 오른쪽 부분의 각 자릿수의 합은 4+0+2이므로 두 합이 6으로 동일하여 럭키 스트레이트를 사용할 수 있다. 현재 점수 N이 주어졌을 때 럭키 스트레이트를 사용할 수 있는 상태인지 아닌지 알려주는 프로그램을 작성하시오. 조건 입력 첫째 줄에 점수 N..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 6. 무지의 먹방 라이브 (Python)

6. 무지의 먹방 라이브 2019 카카오 신입 공채 기출 문제 회전판에 먹어야 할 N개의 음식이 있다. 각 음식에는 1부터 N까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다. 무지는 다음 방식으로 음식을 섭취한다. 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞에 온다. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭취한다. 다음 음식이란 아직 남은 음식 중 다음으로 섭취해야 할 가장 가까운 번호의 음식을 말한다. 회전판이 다음 음식을 무지 앞으로 가져오는 데 걸리는 시간은 없다고 가정한다. 무지가 먹방을 시작한 지 K초 ..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 5. 볼링공 고르기 (Python)

5. 볼링공 고르기 문제 A, B 두 사람이 서로 무게가 다른 볼링공을 고르려고 한다. 총 N개의 볼링공이 있고 각 공에 무게가 적혀있으며 공의 번호는 1번부터 순서대로 부여된다. 같은 무게의 공이 여러 개 있을 수 있지만 서로 다른 공으로 간주한다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재한다. N개의 공의 무게가 각각 주어질 때, 두 사람이 볼링공을 고르는 경우의 수를 구하시오. 예시 N이 5고 M이 3이며 각각의 무게가 1 3 2 3 2일 때 각 공의 번호가 차례대로 1번부터 5번까지 부여된다. 이때 두 사람이 고를 수 있는 볼링공 번호의 조합을 구하면 다음과 같다. (1, 2) / (1, 3) / (1, 4) / (1, 5) / (2, 3) / (2, 5) / (3, 4) / (4, 5..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 3. 문자열 뒤집기 (Python)

3. 문자열 뒤집기 문제 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 할 때, 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집기란 0을 1로 1을 0으로 만드는 것을 말한다. 문자열 S가 주어졌을 때 다솜이가 해야 하는 행동의 최소 횟수를 출력하시오. 예시 예를 들어 S = 0001100일 때 전체를 뒤집으면 1110011이 됨 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어 두번만에 모두 같은 숫자로 만들 수 있음 하지만 처음부터 4번째 문자부터 5번째 문자까지 뒤집으면 한 번에 0000000이 되어 모두 같은 숫자로 만들 수 있음 입출력 조건 입력: 첫째 줄에 0과 1로만 이..

반응형