https://codingdojang.com/scode/408
#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 |
---|