백준
-
[백준] 2979번 트럭 주차Algorithm Study/Python 2024. 2. 27. 22:02
https://www.acmicpc.net/problem/2979 2979번: 트럭 주차 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장 www.acmicpc.net 풀이 특정 시간에 몇 대의 트럭이 주차되어있는지 알 수 있으면 계산하기 쉬운 문제이다. 시간 범위가 1 ~ 100까지기 때문에 100까지의 리스트를 미리 생성한 뒤, 입력으로 받은 범위에 차량이 있다는 것을 표시해주고 금액을 계산하면 된다. 전체 코드 A, B, C = map(int, input().split()) time_list = [0 for _ in range(101)]..
-
[백준] 2309번 일곱난쟁이Algorithm Study/Python 2024. 2. 26. 11:51
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀이 입력으로 받는 9개의 숫자 중 7개의 합이 100이 되게 구해야한다. 이 경우에는 조합을 사용하여 9개 중 7개를 추출하여 모든 조합에 대하여 계산하면 쉽게 구할 수 있다. 9C7은 36으로 모두 확인한다고해도 많은 시간이 소요되지 않는다. import itertools data = [] for i in range(9): data.append(int(input())) data.sort() data_c..
-
[백준] 1159번 농구 경기Algorithm Study/Python 2024. 1. 28. 21:48
https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 풀이 입력받은 리스트를 정렬하여 연속으로 5개 이상 나오는 경우 답에 추가하는 방식으로 구현하려고 했으나 반복문을 돌리면서 본인 첫글자에 해당하는 index에 1씩 더해주는 방법이 더 쉬울 것 같아서 해당 방법으로 구현했다. N = int(input()) data = [] for i in range(N): data.append(input()) N을 입력받은 뒤 N번 반복을 시켜 여러 데이터를 입력 받았다..
-
[백준] 10988번 팰린드롬인지 확인하기Algorithm Study/Python 2024. 1. 28. 21:32
https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 풀이 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 다양한 해결책이 있을 수 있다. 뒤집어진 문자열을 만들어서 비교, 양 끝을 비교해서 같으면 잘라낸 뒤 마지막에 남는 길이가 0 또는 1인지 확인 양쪽에서부터 같은 문자인지 확인 등 나는 마지막에 이야기한 양쪽에서부터 문자를 확인하여 같은 문자면 1칸씩 더하고 빼는 방법을 사용해보려고 한다. data = input() answer = 1 for idx in range(len(da..
-
[백준] 1343번 폴리오미노Algorithm Study/Python 2024. 1. 16. 21:46
https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 풀이 출력 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. 출력 조건이 사전순이기 때문에 'AAAA'를 넣을 수 있으면 무조건 넣어야하는 문제라 단순하게 풀 수 있다. count = 0 answer = "" for i in input_string: if i == 'X': count += 1 if count == 4: answer += "AAAA" count = 0 문자는 X , . 두 종류가 있고 X이면 count를 증가시켰다. count가 4가 되면 AAAA..
-
[백준] 11655번 ROT13Algorithm Study/Python 2024. 1. 16. 21:30
https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 풀이 입력 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. 입력을 보면 S길이는 100 알파벳 대,소문자는 총 52자이기 때문에 단순 if 문으로 구현해도 특별히 문제없이 해결될 것같지만 아스키 코드를 이용해서 풀어봤다. python은 ord()를 통해 아스키 코드로 변환, chr()를 이용하여 다시 문자로 변화할 수 있다.| 'A'는 65 'Z'는 90 'a'는 97 'z'는 122이다. 전체 ..
-
[백준] 18808 스티커 붙이기Algorithm Study/Python 2021. 9. 28. 23:49
https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 풀이 스티커가 들어갈 수 있는지 체크하고 들어가지 못하면 90도 회전시킨 후 다시 확인하는 단순한 구현이지만 세세한 부분을 체크해야하는 문제였다. ROW, COL, K = map(int, input().split()) board = [[0 for _ in range(COL)] for _ in range(ROW)] stickers = [] for i in range(K): r, c = map(int,..
-
[백준] 16236번 아기 상어Algorithm Study/Python 2021. 9. 24. 02:54
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마 상어에게 도움을 요청한다. 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. 먹을 수 있는 물고기가 1마리보다 많다면, 거리가 가장 가까운 물고기를 먹으러 간다. 거리는 아기 상어가 있는 칸에서 물고기가 있는 칸으로 이동할 때, 지나야하는 칸의 개수의 최솟..