목록전체 글 (601)
sm 기술 블로그
let input = require('fs').readFileSync(0).toString().trim().split('\n'); let N = parseInt(input[0]); input.shift(); let personList = []; let result = ""; for(let i =0; i { if(a[0] != b[0]) { return a[0] - b[0]; } return 0; }).forEach(personList => { result += personList[0] + " " + personList[1] + "\n"; }); console.log(result) 정렬문제를 지금까지 문제 없이 풀었다면 크게 어렵지 않은 문제.
import sys input = sys.stdin.readline N = int(input()) personList = [] for _ in range(N): age, name = input().split() age = int(age) personList.append([age, name]) sortedPerson = sorted(personList, key=lambda x: (x[0])) for valAge, valName in sortedPerson: print(str(valAge)+" "+valName) 문제 요약 나이순으로 정렬하고 나이가 같다면 입력순으로 정렬하시오. 설명 리스트는 여러가지 형태의 값들을 한번에 저장이 가능하다. 따라서 나이는 int형으로, 이름은 string형으로 처리할 수 있..
let input = require('fs').readFileSync(0).toString().trim().split("\n"); input.shift(); let inputArr = Array.from(new Set(input)); inputArr.sort((a, b) => { let aLength = a.length; let bLength = b.length; if(aLength != bLength){ if(aLength > bLength){ return 1; } else if(aLength < bLength){ return -1; } } for(let i=0; i b.charAt(i)){ return 1; } else if(a.charAt(i) < b.charAt(i)){ return -1; } }..
import sys input = sys.stdin.readline() N = int(input()) arr = set([input().strip() for _ in range(N)]) arr = sorted(list(arr), key=lambda x: (len(x), x)) for val in arr: print(val) 문제요약 문자열을 받음 -> 길이가 짧은 순으로 정렬 -> 길이가 같으면 사전순으로 정렬해라 해결 strip() 은 문자열에 양옆 공백을 제거해준다. set()은 집합으로 중복을 제거해준다. 하지만 순서는 보장되지 않는다. 따라서 처음 입력받은 리스트를 집합으로 바꿔 중복을 제거 해주었다. sorted() 정렬은 리스트만 가능하다. 집합으로 형변환을 해준 현재 정렬을 바로 하기는 불가..