혜랑's STORY

[BOJ_Python] 1431번, 1920번 본문

무지성 공부방/알고리즘 해결

[BOJ_Python] 1431번, 1920번

hyerang0125 2020. 7. 21. 21:46

#1431번

1431번 문제

- 풀이

N = int(input())
guitar = []
for _ in range(N):
	#입력받은 시리얼번호 속 숫자를 더해주는 변수
    count = 0
    sirial_number = input()
    #시리얼번호 속 숫자를 더하는 함수
    for c in range(c):
    	if c.isdigit():
        	count += int(c)
    guitar.append((sirial_number,count))
# len(x[0]):시리얼번호의 길이 / x[1]:숫자의 합 / x[0]:시리얼번호의 사전 순
guitar.sort(key = lamda x:(len(x[0]),x[1],x[0]))
for g in guitar:
	print(g[0])

cf> 우선순위

  1. 시리얼번호가 짧은 순
  2. 시리얼번호에 있는 모든 숫자의 합이 작은 순
  3. 사전순 (단, 알파벳 > 숫자)

#1920번

1920번 문제

- 풀이

N = int(input())

A = sorted(list(map(int,input().split()))
M = int(input())
B = list(map(int,input().split()))

for i in B:
	#배열은 0부터 시작하기 때문에 end는 n-1이다
	star = 0; end = n-1; T=0
    while star<=end:
    	#middle: 이진탐색을 위해 중앙값 선언
    	middle = (star+end)//2
        if i == Apmiddle]: T = 1; break
        #찾고자하는 값이 중앙값보다 작다면 찾는 범위의 마지막 인덱스값을 middle-1로 설정
        elif i <= A[middle]: = 1end = middle-1
        #만약 위의 상황과 반대의 경우라면 시작 인덱스 값을 middle+1로 설정
        else: start = middle 
    print(T)

 

'무지성 공부방 > 알고리즘 해결' 카테고리의 다른 글

[BOJ_C] 14889번  (0) 2020.08.03
[BOJ_Python] 2869번, 1620번  (0) 2020.07.22
[BOJ _Python] 11650번, 10814번  (0) 2020.07.20
SWEA 7732번  (0) 2020.07.14
SWEA 3752번  (0) 2020.07.13