백준(30)
-
백준 5373 - 큐빙 (Python)
문제 https://www.acmicpc.net/problem/5373 5373번: 큐빙 각 테스트 케이스에 대해서 큐브를 모두 돌린 후의 윗 면의 색상을 출력한다. 첫 번째 줄에는 뒷 면과 접하는 칸의 색을 출력하고, 두 번째, 세 번째 줄은 순서대로 출력하면 된다. 흰색은 w, 노란 www.acmicpc.net 풀이 import sys input = sys.stdin.readline t = int(input()) sides = {'U':0,'L':1,'F':2,'R':3,'B':4,'D':5} def turn(code): side = sides[code[0]] direction = code[1] for i in range(1 if direction == '-' else 3): for j in rang..
2024.01.31 -
백준 6581 - HTML (Python)
문제 https://www.acmicpc.net/problem/6581 6581번: HTML 원래의 HTML 문서가 입력으로 주어진다. 이 텍스트는 단어와 HTML 태그들로 이루어져 있으며, 태그는 한 개 이상의 공백문자나 탭, 개행 문자 등으로 구분된다. 단어는 연속된 알파벳, 숫자, 또는 www.acmicpc.net 풀이 import sys txt = [] for line in sys.stdin: txt += line.split() count = 0 for t in txt: if t == " ": print() count = 0 elif t == "": if count !=0: print() print("-"*80) count = 0 else: if count+len(t)+1 > 80: #한칸 띄우기..
2024.01.29 -
백준 3107 - IPv6 (Python)
문제 https://www.acmicpc.net/problem/3107 3107번: IPv6 첫째 줄에 올바른 IPv6 주소가 주어진다. 이 주소는 최대 39글자이다. 또한, 주소는 숫자 0-9, 알파벳 소문자 a-f, 콜론 :으로만 이루어져 있다. www.acmicpc.net 풀이 ip = input() #하나의 그룹을 :: 로 변경한 경우 if ip.count(":") ==8: ip = ip.replace("::",":") #두개 이상의 그룹을 ::로 변경한 경우 ip = ip.replace("::",(7-ip.count(":"))*":" + "::") ip = ip.split(":") #각 그룹내에서 0이 생략된 경우 for i in range(len(ip)): if len(ip[i]) < 4: i..
2024.01.29 -
백준 10813 - 공 바꾸기 (python)
문제 https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 풀이 n과 m을 입력받고 range 함수를 이용하여 1부터 n까지 수가 저장된 리스트를 만든다 i, j 를 입력받은 뒤 각각 1씩 빼준다 (리스트의 인덱스는 0부터 시작하기 때문) 리스트의 i번째 요소와 j번째 요소를 교환하는 과정을 m번 반복한다 join함수를 이용하여 format에 맞게 출력한다. n,m=map(int,input().split()) #n, m 입력받기 basket = lis..
2023.03.10 -
백준 10810 - 공 넣기 (python)
문제 https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 풀이 처음 시작시 n과 m 을 입력받고 길이가 n인 리스트를 만든다. 그 이후로 i, j, k를 입력받은 뒤 리스트의 i부터 j번째까지를 k로 바꾸는 작업을 m번 반복한다. 파이썬으로 구현하면 꽤 간단하지만 인덱스는 0번이 시작이라는 것을 고려하여 풀이해야 한다. 파이썬의 range 함수와 for문을 이용하면 간단히 구현할 수 있고, join함수는 str형이 저장된 리스트에만 사용할 수 있..
2023.03.08 -
백준 25501 - 재귀의 귀재 (python)
문제 https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 풀이 문제에서 팰린드롬 여부를 판단하는 험수가 미리 작성되어 있으므로 이 코드를 이용하여 isPalindrome함수의 반환값과 recursion함수의 호출횟수를 출력하기만 하면 된다. 아래 코드가 문제에서 제공 된 isPalindrome함수이다: def recursion(s, l, r): if l >= r: return 1 elif s[l] != s[r]: return 0 else: return recursion(s, l+1, r-1) def ..
2023.02.05