728x90
반응형

# 시간 초과 코드 

n = int(input())
data = list(map(int,input().split()))

sum = [ [i,0] for i in data]

for i in range(n):
  for j in range(n):
    if data[i] != data[j]:
      sum[i][1] += abs(data[i]-data[j])

sum.sort(key= lambda x: x[1])

print(sum[0][0])

 

 

# 정답 코드 

n = int(input())
data = list(map(int,input().split()))

data.sort()

print(data[(n-1)//2])

-> 무조건 가운데 있는 것이 가장 작은 거리 값을 갖는다.. 

728x90
반응형
728x90
반응형
n = int(input())
data = [] 
for i in range(n):
  data.append(list(input().split()))

data.sort(key=lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0]))

for i in data:
  print(i[0])

 

* sorted()

- iterable 객체가 들어왔을 때, 정렬된 결과를 반환함. 

- key 속성으로 정렬 기준을 명시할 수 있음. 

- 반대로 정렬하고 싶다면 reverse = True 를 사용. 

 

* lambda 

- 익명 함수 

 - [ lambda 인자 : 표현식 ] 형태 

- map() 함수와 함께 쓰거나 여러 조건으로 정렬하고 싶을 때, 사용하면 간편하다. 

ex)

# key = 함수 로 표현하면, 함수의 반환값을 기준으로 정렬함. 

A = sorted(A, key = lambda x : x[0]) 

# 여러 조건으로 정렬할 때, 
# x[0]으로 오름차순으로 정렬하고 , x[1]로 내림차순으로 정렬함.

A = sorted(A, key = lambda x : (x[0], -x[1])) 

 

728x90
반응형

'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글

# 11726 2xn 타일링  (0) 2020.09.11
# 1003 피보나치 함수  (0) 2020.09.11
# 1463 1로 만들기  (0) 2020.09.11
# 9507 Generations of Tribbles  (0) 2020.09.11
# 9095 1,2,3 더하기  (0) 2020.09.11
728x90
반응형
# 두 배열 A,B
# 최 대 k 번 바꿔치기 연산 가능 
# A의 모든 원소의 합이 최대가 되도록 하자. 

n,k = map(int, input().split())

# A의 작은 것과 B의 큰 것을 바꾸자. 

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

A.sort()
B.sort(reverse=True)

for i in range(k):
  if A[i]>B[i]:
    break
  else:
    A[i], B[i] = B[i], A[i]

print (sum(A))
728x90
반응형
728x90
반응형
n = int (input())

data = [] 
for i in range(n):
  data.append( list(input().split()))

def select(data) :
  return data[1]

data = sorted(data, key=select)

for i in range(len(data)):
  print(data[i][0],end=' ')
728x90
반응형

'알고리즘 > 이것이 취업을 위한 코딩테스트다' 카테고리의 다른 글

14-25. 실패율  (0) 2020.09.09
06-4. 두 배열의 원소 교체  (0) 2020.09.09
11-06. 무지의 먹방 라이브  (0) 2020.09.03
11-05. 볼링공 고르기  (0) 2020.09.03
04-2. 시각  (0) 2020.09.03
728x90
반응형

# 효율성 test 탈락

# 다익스트라, 힙 알고리즘 배우고 다시 풀어보기. 

https://programmers.co.kr/learn/courses/30/lessons/42891?language=python3

 

코딩테스트 연습 - 무지의 먹방 라이브

 

programmers.co.kr

# 1초에 1번씩 음식이 바뀐다. = 음식의 time -1 
# 만약 time이 0이면 다음 음식으로 넘어가야함. 이 때, 시간이 증가하면 안됨.. 
# 모든 음식이 0 이면 -1 반환하기 

def solution(food_times, k):
    answer = 0  # 현재 먹고 있는 음식의 번호 -1 
    zero = k  # 0 인 음식의 수 
    
    while zero :
        z = 0 
        for i in range(zero):   
            if food_times[answer] != 0 :
                food_times[answer] -= 1 
            else :
                z += 1 
                
            answer += 1 
            if answer == len(food_times):
                 answer = 0 
            if sum(food_times) == 0 : 
                 answer = -2
                 break
        if (answer == -2): break
        zero = z
    
    answer += 1 
    return answer
728x90
반응형

+ Recent posts