이것이 취업을 위한 코딩 테스트다. 정렬 [성적이 낮은 순서로 학생 출력하기]
이것이 취업을 위한 코딩 테스트다. with 파이썬 - 나동빈
나의 풀이
Java
public class LowGradeStudent {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
HashMap<Integer, String> student = new LinkedHashMap<>();
for(int i = 0; i < N; i++) {
String[] s = br.readLine().split(" ");
student.put(Integer.parseInt(s[1]), s[0]);
}
List<Integer> scores = student.keySet().stream().sorted().collect(Collectors.toList());
for(int i = 0; i < scores.size(); i++) {
System.out.print(student.get(scores.get(i)) + " ");
}
}
}
- map 을 이용하여 성적을 키, 이름을 밸류 값으로 지정하였다.
- 입력을 모두 받고, 맵에서 성적(키) 값을 정렬 시켜 리스트를 만든다.
- 성적순으로 정렬된 리스트를 키 값으로 사용하여 맵에서 이름을 출력한다.
Python
N = int(input())
arr = []
for i in range(N):
arr.append(tuple(input().split()))
def setting(data):
return data[1]
arr = sorted(arr, key=setting)
for i in range(len(arr)):
print(arr[i][0], end=" ")
- 리스트를 만들어 입력 값을 튜플로 리스트에 넣는다.
- 정렬 기준 함수를 만들어 sorted 함수에 사용한다.
- 그리고 이름 출력
문제 해설 & 느낀점
자바 풀이를 보니 Student 객체를 만들어 compareTo 를 오버라이딩 하여 성적순으로 정렬하였다. 객체지향적이라서 보기 좋았다. 파이썬 코드는 파이썬의 람다로 접근하였는데, 람다는 아직 잘 몰라서 그냥 책에 나온 방식으로 접근했다.
class Student implements Comparable<Student> {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
@Override
public int compareTo(Student o) {
return this.score - o.score;
}
}
public class LowGradeStudent {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
List<Student> arr = new ArrayList<>();
for(int i = 0; i < N; i++) {
String[] s = br.readLine().split(" ");
arr.add(new Student(s[0], Integer.parseInt(s[1])));
}
Collections.sort(arr);
for(int i = 0; i < arr.size(); i++) {
System.out.print(arr.get(i).getName() + " ");
}
}
}
Author And Source
이 문제에 관하여(이것이 취업을 위한 코딩 테스트다. 정렬 [성적이 낮은 순서로 학생 출력하기]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@goshk95/이것이-취업을-위한-코딩-테스트다.-정렬-성적이-낮은-순서로-학생-출력하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)