분류 전체보기

문제 https://www.acmicpc.net/problem/15905 15905번: 스텔라(STELLA)가 치킨을 선물했어요 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 는 아주대학교, 경희대학교, 성균관대학교, 인하대학교, 한국항공대학교, 한양대학교ERICA가 함께하는 대학교 자체 연합 대회이다. shake! 는 매 www.acmicpc.net 풀이 입력값을 받아 이차원 리스트로 만든 후, sort와 익명함수를 이용하여 해결한 문제가 높은 순으로, 같다면 패널티가 낮은 순으로 정렬한다. 반복문을 통해 정렬된 리스트의 5번째 리스트의 첫번째 값인 점수와 같은 값을 갖고, 두번째 값인 패널티보다 낮은 값을 갖는 리스트의 개수를 세어 출력한다. 코드 N = int(input()) arr = [..
문제 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다. 출력 첫째 줄에 문제의 정답을 출력한다. 예제 입력 1 .F.F...F F...F.F. ...F.F.F F.F...F. .F...F.. F...F.F. .F.F.F.F ..FF..F. 예제 출력 1 1 [ 문제 분석 ] 8*8짜리 정사각형 체스판이 주어져 있고, 첫번째 (0.0)칸을 기준으로 흰색, 검정색 칸이 번갈아 나타난다. 체스판의 상태를 입력하면, 흰색 칸 위에 말이 몇개..
https://www.acmicpc.net/problem/5533 5533번: 유니크 첫째 줄에 참가자의 수 N이 주어진다. (2 ≤ N ≤ 200) 둘째 줄부터 N개 줄에는 각 플레이어가 1번째, 2번째, 3번째 게임에서 쓴 수가 공백으로 구분되어 주어진다. www.acmicpc.net 문제분석 2차원 리스트로 입력받아 for문을 이용해 숫자를 비교한다. n = int(input()) score = [[], [], []] sum = [] for i in range(n): a, b, c = map(int, input().split()) score[0].append(a) score[1].append(b) score[2].append(c) for i in range(n): get = 0 for j in ra..
문제 링크 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 파이썬의 heapq 모듈을 사용해 우선순위 큐를 구현하였다. 처음에는 양의 정수와 음의 정수를 각각 다른 힙에 저장하여 풀었다. (코드1 참조) 다른 블로그를 보니 힙에 push할 때 (절댓값, 입력값) 쌍으로 저장하여 푼 풀이가 있어서 다시 풀어보았다. (코드2 참조) 코드1 import sys input = sys.stdin.readline from hea..
문제 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 풀이 순서값과 풍선값의 pair를 담고있는 deque를 이용하여 풀었다. 풍선값이 양수일때에는 맨처음 풍선은 이미 사라지고 없으므로 for 조건문에서 -1을, 음수일때에는 조건문에 abs를 씌우는것을 유의하자. 코드 #include #include using namespace std; int n; int main() { cin >> n; deque a(n); for (int..
우리집 그린칙코뉴어는 맨날 나를 물었다. 문제 링크 Problem 예제 입력 1 3 i want to see you next week good luck i want next good luck week to see you 예제 출력 1 Possible 예제 입력 3 2 please be careful pen pineapple apple pen 예제 출력 3 Impossible 앵무새가 말한 단어들을 앞에서 부터 조합하여 최종 문장을 만들 수 있는가? 에 대한 문제 Before 이번 주차에 배웠던 큐, 덱, 스택, 우선순위 큐, 힙에대해서 꼭 알고 가면 좋을 듯 하다. 큐와 덱이 뭐예요?? 우선순위 큐와 힙, 이진트리는 뭘까요? Solution 앵무새가 말한 단어들을 queue나 List에 집어 넣음 n개의..
https://www.acmicpc.net/problem/8611 8611번: 팰린드롬 숫자 \(n\)을 \(2, 3, \dots, 10\) 진법으로 나타냈을 때, 팰린드롬인 경우가 없다면, "NIE"를 출력한다. 그 외의 경우에는 팰린드롬이 되는 진법 \(b\)와 \(n\)을 \(b\)진법으로 나타낸 수 \(m\)을 출력한다. 출력은 www.acmicpc.net 문제 코드 #include using namespace std; #include #define PI 3.141592653589793 #define ll long long int main(void) { ios::sync_with_stdio(0); cin.tie(0); ll n; cin >> n; ll st = n; int cnt=0; for (i..
문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 끝나는 시간이 빠른 순서대로 회의 시간을 정렬한 후 가능한 회의를 순서대로 선택을 하면 되는 그리디 문제이다. 그리디는 귀류법으로 가설을 증명하는데 실제 코딩테스트 환경에서는 그렇게 풀 수 없고 눈에 보이는 문제면 바로 풀어보고 긴가 민가하면 마지막에 푸는게 낫다고 한다. 코드 #include using namespace std; #define pii pair vector v; int n; bool cmp(pii a, pii b) { if (a.second != b.second) return a.sec..
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 해석 N개의 수가 주어지고 이를 오름차순으로 정렬하는 프로그램이다. 코드 input = __import__('sys').stdin.readline n = int(input()) arr = [0] * 10001 for _ in range(n): t = int(input()) arr[t] += 1 for i in range(10001): if arr[i] != 0: for j in range(arr[i]): pri..
BOJ 13975번 파일 합치기 3 Intro Min Heap을 구현하여 풀이하였습니다. Swift로 Heap을 직접 구현해본 것은 처음이라 틀린 부분이 있다면 조언 부탁드립니다. Heap 구현 시 해당 블로그를 많이 참고하였습니다. Solution 입력받은 리스트를 Min Heap 구조로 변경시킨다. 최솟값을 2번 pop하여 더한다. 더한 값을 Min Heap에 다시 push한다. Min Heap에 남은 요소의 개수가 1개가 될 때까지 2~3번 과정을 반복한다. 남은 요소가 1개면 3번에서 push한 값들의 합을 출력한다. Code Swift import Foundation let t = Int(readLine()!)! for _ in 0.. Int { var heap = heap var cost = ..
문제 풀이 간단하게 큐를 이용하여 풀었습니다. 1부터 N까지 큐에 입력한 뒤, 반복문을 실행합니다. 반복문은 2가지의 동작을 연속적으로 합니다. 첫 번째 동작은 큐의 숫자를 poll하여 삭제하는 것이고, 다음 동작은 poll한 숫자를 다시 큐에 add 하는 것 입니다. 이 과정에서 isEmpty() 가 true가 된다면 마지막의 값을 출력하고 종료합니다. 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWri..
https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 문제분석 2차원 리스트를 입력으로 받고 그 때의 최댓값과 최댓값의 인덱스를 출력하는 문제이다. 최댓값 인덱스를 출력할 때 처첫번째 인덱스의 시작이 0이 아닌 1로 시작해야한다는 점에 주의해야한다. 코드 s = [map(int, input().split()) for _ in range(9)] m = 0 c = 0 for i in s: c += 1 r = 0 for j in i: r += 1 if j>m: m = j a..
KauKoala
'분류 전체보기' 카테고리의 글 목록 (120 Page)