class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= n/2; i++){
if(n%i==0){
answer += i;
}
}
return answer+n;
}
}
문제 : 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME LIMIT 1
LIMIT이란 반환할 행수를 제한하는 기능으로 WHERE구로 검색한 후, ORDER BY로 정렬된 뒤 최종적으로 처리됨.
문제 : 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME LIMIT 1
문제 : 동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'
ORDER BY ANIMAL_ID ASC
private static void displayGradeView() {
// 수강생의 ID 입력
System.out.println("\n==================================");
System.out.print("조회할 수강생의 ID를 입력하세요: ");
String studentId = sc.next();
// 입력된 ID가 학생 목록에 있는지 확인
if (studentList.containsKey(studentId)) {
// 입력된 ID에 해당하는 학생 객체 가져오기
Student student = studentList.get(studentId);
// 학생이 수강한 과목 목록 가져오기
List<String> subjects = student.getSubjects();
// 수강 중인 과목 목록 출력
System.out.println("수강중인 과목 목록:");
for (String subjectId : subjects) {
String subjectName = findSubjectName(subjectId);
System.out.println("- " + subjectName);
}
// 조회할 과목 선택
System.out.print("조회할 과목을 선택하세요: ");
String selectedSubject = sc.next();
// 선택한 과목이 수강 목록에 있는지 확인
if (subjects.contains(selectedSubject)) {
// 선택한 과목의 성적 조회
System.out.println("수강생 " + student.getStudentName() + "의 " + selectedSubject + " 과목 성적 조회");
// 과목의 최대 회차 구하기
int maxRound = 0;
for (Score score : scoreList) {
if (score.getSubjectId().equals(selectedSubject) && score.getStudentId().equals(studentId)) {
maxRound = Math.max(maxRound, score.getRound());
}
}
// 최대 회차가 0인 경우 성적 없음을 표시
if (maxRound == 0) {
System.out.println("해당 과목의 성적이 없습니다.");
} else {
// 과목의 각 회차별 성적 조회
for (int i = 1; i <= maxRound; i++) {
Score score = findGrade(selectedSubject, studentId, i);
if (score != null) {
Grade grade = score.calculateGrade();
System.out.println("회차 " + i + ": " + grade);
} else {
System.out.println("회차 " + i + ": 성적이 없습니다.");
}
}
}
} else {
// 선택한 과목이 수강 목록에 없음을 표시
System.out.println("해당 과목은 수강한 적이 없습니다.");
}
} else {
// 입력된 ID에 해당하는 수강생이 없음을 표시
System.out.println("해당 ID의 수강생이 없습니다.");
}
}
// 과목 ID를 이용하여 과목 이름 찾기
private static String findSubjectName(String subjectId) {
for (Subject subject : subjectList) {
if (subject.getSubjectId().equals(subjectId)) {
return subject.getSubjectName();
}
}
return ""; // 과목 이름을 찾지 못한 경우 빈 문자열 반환
}
// 과목 ID, 수강생 ID, 회차를 이용하여 해당 성적 찾기
private static Score findGrade(String subjectId, String studentId, int round) {
for (Score score : scoreList) {
if (score.getSubjectId().equals(subjectId) && score.getStudentId().equals(studentId) && score.getRound() == round) {
return score; // 해당 과목, 수강생, 회차에 해당하는 성적 반환
}
}
return null; // 해당 회차의 성적이 없는 경우 null 반환
}
인터페이스 | 특징 | |
---|---|---|
List | 순서가 있는 데이터의 집합. 데이터의 중복을 허용 | |
구현 클래스 : ArrayList, LinkedList, Stack, Vector 등 | 순서 O, 중복 O | |
SET | 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음 | |
구현 클래스 : HashSet, TreeSet 등 | 순서 X, 중복 X | |
Map | 키(key)와 값(vlaue )의 쌍으로 이루어진 데이터의 집합 | |
순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용함 | ||
구현 클래스 : HashMap, TreeMap, Hashtable, Properties 등 | 순서 X, 중복: 키 - X / 값 - O |
장점 : 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간이 짧음.
단점 :
컬렉션 | 읽기(접근시간) | 추가/삭제 | |
---|---|---|---|
ArrayList | 빠르다 | 느리다 | 순차적인 추가/삭제는 더 빠름. 비효율적인 메모리 사용 |
LinkedList | 느리다 | 빠르다 | 데이터가 많을수록 접근성이 떨어짐 |