BAEKJOON 20124 Python (B2)
·
Algorithm(알고리즘)/Baekjoon(백준)
문제 풀이먼저 N값을 입력받아 학생의 수를 확인한다.이후 각 학생의 이름과 점수를 입력받고 (이름, 점수)로 하여 튜플구조로 List에 저장한다.여기서 튜플구조란 순서가 있는 자료형이다. (이름, 점수)처럼 순서를 지정해서 저장하는 것이다.정렬하는 방식에서 Lambda x: (-x[1], x[0])방식을 사용하였는데 -x[1] 두 번째 값인 점수를 기준으로 내림차순 정렬을 진행하고, 이후 점수가 같은 구역에서 x[0], 즉 이름에 대한값을 오름차순으로 정렬하는 것이다.이후 리스트에서 첫 번째 값을 출력한다. 코드# 입력 개수 받기n = int(input())# 이름:점수 형식으로 리스트에 저장name_score_list = []for _ in range(n): name, score = input()..
BEAKJOON 4949 Python (S4)
·
Algorithm(알고리즘)/Baekjoon(백준)
균형잡힌 세상문제설명각 줄의 괄호들이 균형을 이루고 있는지 검사하는 문제소스코드while True: string = input().rstrip() if string == ".": break stack = [] balanced = True for char in string: if char in "([": stack.append(char) elif char == ")": if not stack or stack[-1] != "(": balanced = False break stack.pop() elif char =..
BAEKJOON 1436 Python
·
Algorithm(알고리즘)/Baekjoon(백준)
영화감독 숌문제설명입력 값에 따라 종말의 수인 666이 들어간  N번째로 작은 수를 구하는 문제소스코드N = int(input())count = 0result = 666while count != N: if "666" in str(result): count += 1 result += 1 print(result-1)Python 풀이먼저 우선적으로 생각한 부분은 어떻게하면 N번째로 작은 666이 들어간 수를 구할까 였습니다.그래서 666부터 시작해 +1을 반복하며 이를 카운트하여 N번째로 작은 수까지 도달하도록 하기로 생각했습니다.따라서 변수 N을 선언하고 입력값을 정수형으로 입력받은 뒤목표인 N까지 도달하기위해 현재의 위치를 저장해 둘 카운트 변수를 선언하고가장 가까운 값부터 시..
BAEKJOON 9093 Python
·
Algorithm(알고리즘)/Baekjoon(백준)
단어 뒤집기문제설명단어의 순서는 유지하되, 단어의 출력을 거꾸로 뒤집어 출력하는 문제소스코드T = int(input())for _ in range(T): words = input().split() for word in words: print(word[::-1], end=' ')Python 풀이우선 T번 입력이 들어오는 것을 알기위해 T를 입력받고 T만큼 for문을 사용하여 동작하도록 하였습니다.단어의 순서는 유지하되, 단어의 스펠링 출력은 뒤집어서 출력을 해야하기 때문에우선 공백으로 구분하여 "words"리스트에 저장해줍니다.이후 word변수에 words 리스트의 요소들을 모두 소모할때까지 for문을 돌리고for문 안에는 해당 요소, word를 슬라이싱하여 뒤에서부터 끝까지 출력..
BAEKJOON 1439 Python
·
Algorithm(알고리즘)/Baekjoon(백준)
뒤집기문제 설명0과 1로 이루어진 문자열을 최소 횟수로 반전시켜 모두 같게 만듭니다.반전의 경우 연속된 하나이상의 숫자를 함께 뒤집을 수 있습니다.소스코드number = list(input())count = 0for i in range(len(number)-1): if number[i] != number[i+1]: count +=1 print((count+1)//2)Python 풀이최소 반전 횟수를 구하는 문제이기 때문에전체의 변경 횟수, 즉 입력 값이 "001"일 때 "0 → 1"변경될 때의 경계 값을 세어 전체의 변경 횟수를 파악하고이를 이용하여 최소 반전 횟수를 구하기로 했습니다.먼저 문자열을 list형식으로 입력받습니다.그리고 변경횟수를 저장할 변수 값을 만들어둡니다..
BAEKJOON 1475 Python
·
Algorithm(알고리즘)/Baekjoon(백준)
방 번호문제설명정수 N을 입력받아 0~9의 숫자세트를 이용하여 최소 몇개의 세트로 구현이 가능한지 찾는 문제입니다.소스코드import mathN = list(input()) count = [0] * 10 for digit in N: count[int(digit)] += 1six_nine_count = math.ceil((count[6] + count[9]) / 2)result = max(max(count[:6] + count[7:9] + count[10:]), six_nine_count)print(result)Python 풀이먼저 N을 정수형식으로 입력받은 뒤list로 만들어줍니다.0~9의 배열을 하나 만들어둔 뒤 (Count)For문을 사용하여 입력받은 값을 하나씩 같은 배열의 칸에 넣습니다.6..