11651, 11729, 2108

qkrrnjswo·2023년 3월 23일
0

백준, 프로그래머스

목록 보기
11/53

11729. 하노이 탑 이동 순서

    2^n-1번의 이동 필요
    a, b, c기둥이 있을 때 a=>c로 이동, 원반이 n개가 있을 때:
    
    1. n=1일 때는 옮기고 종료
    2. n-1개를 b 기둥에 옮긴다(재귀)
    3. 가장 큰 원반을 c 기둥에 옮긴다
    4. n-1개를 c 기둥에 옮긴다(재귀)


11651. 좌표 정렬하기 2

      아래 형식을 이용하여 풀수 있음
   arr.sort(key=lambda x:(x[1],x[0]))
      arr = [[a,b,c...], [d,e,f...], ..... , [x,y,z...]] 일때
      x: x[i] => i번째 원소들끼리 비교
      x:(x[i],x[j]) => i번째 원소끼리 비교 후 같다면, j번째 원소를 비교


	

2108. 통계학

	산술평균 : N개의 수들의 합을 N으로 나눈 값
    중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값
    최빈값 : N개의 수들 중 가장 많이 나타나는 값.
    	    => 여러 개 있을 때에는 최빈값 중 두 번째로 작은 값을 출력한다.
    범위 : N개의 수들 중 최댓값과 최솟값의 차이
        
    정렬 후 풀면 최빈값 말고는 다 풀수가 있다.
    
    1. n만큼 돌면서 하는 방법
value = [arr[0]]
count = [1]
for i in range(1,n):
    if value[-1] == arr[i]:
        count[-1] += 1
    else:
        value.append(arr[i])
        count.append(1)

max_count = max(count)
c = 0
v = 0
for i in range(len(count)):
    if count[i] == max_count:
        v = value[i]
        c += 1
        if c == 2:
            break
print(v)
    2. collections를 쓰는 방법
from collections import Counter
min = Counter(arr).most_common(2)

if len(min) > 1:
    if min[0][1] == min[1][1]:
        print(min[1][0])
    else:
        print(min[0][0])
else:
    print(min[0][0])

0개의 댓글