Mini

코딩도장 다음 입사문제 // 파이썬 zip사용법==pair<int,int> , Python sorted 본문

Algorithm/etc

코딩도장 다음 입사문제 // 파이썬 zip사용법==pair<int,int> , Python sorted

Mini_96 2023. 7. 11. 03:44

https://codingdojang.com/scode/408

 

코딩도장

프로그래밍 문제풀이를 통해서 코딩 실력을 수련

codingdojang.com

 

#include <bits/stdc++.h>

using namespace std;

int a[104];
vector<int> v = { 1,3,4,8,13,17,20 };

//idx를 반환
int solution() {
	int idx = 0;
	int min2 = 987654321;

	for (int i = 0; i < v.size() - 1; ++i) {
		min2=min(min2,v[i + 1] - v[i]);
		if (min2 == v[i + 1] - v[i]) {
			idx = i;
		}
	}

	return idx;
}
int main() {

	int idx=solution();

	cout << v[idx]<<" "<<v[idx+1];
}

 

* 파이썬 zip => pair로 묶어준다.

- list(zip(first,second))

s=[1,3,4,8,13,17,20]
ss=[3,4,8,13,17,20]

list(zip(s,ss))
[(1, 3), (3, 4), (4, 8), (8, 13), (13, 17), (17, 20)]

 

- sorted(list , key=정렬기준)

def cmp(i):
    return i[1]-i[0]

s=[1,3,4,8,13,17,20]
ss=[3,4,8,13,17,20]

sorted(list(zip(s,ss)), key=cmp)
def cmp(i):
    return i[1]-i[0]

s=[1,3,4,8,13,17,20]
ss=[3,4,8,13,17,20]

#sorted(리스트, 정렬기준=i.second)
sorted(list(zip(s,ss)), key=lambda i:i[1])
[(1, 3), (3, 4), (4, 8), (8, 13), (13, 17), (17, 20)]

 

* 정답코드 Python

1. pair로 list만들고

2. second-first 기준으로 정렬하고

3.정렬된것의 첫번째가 (차이가 최소인) 정답이다.

def cmp(i):
    return i[1]-i[0]

s=[1,3,4,8,13,17,20]
ss=[3,4,8,13,17,20]

#sorted(리스트, key=정렬기준=i.second)
sorted(list(zip(s,ss)), key=cmp)[0]

'Algorithm > etc' 카테고리의 다른 글

코딩도장 구글입사문제 // 문자열 내부 갯수세기  (0) 2023.07.11