팀 프로젝트가 거의 막바지에 있어서 가벼운 마음으로 하루를 시작했다. 이미 필요한 필수 기능은 다 구현이 되어 추가 기능만 구현하면 되는데 필수 기능과 비슷하게 평균을 조회하는 기능이라 크게 어렵지는 않아서 금방 끝냈다. 그래서 필수 기능에서 조금 아쉬웠던 부분을 추가로 수정하고 자바의 정석 ch5 강의를 들으며 정리를 했다. 내일부터는 튜터님 말씀처럼 이론 학습 비율보다 코드를 따라서라도 더 많이 작성해 보는 것에 더 중점을 두고 학습해야겠다.
문제 : 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
class Solution {
public int[] solution(long n) {
int[] answer = new int[answer.length];
int[] reanswer = new int[answer.length];
for(int i=answer.length-1, j=0; i>0; i--,j++){
reanswer[j] = answer[i];
}
return answer;
}
}
class Solution {
public int[] solution(long n) {
int length = (int) Math.log10(n) + 1;
int[] answer = new int[length];
int[] reanswer = new int[length];
for(int i = length - 1; i >= 0; i--) {
answer[i] = (int)(n % 10);
n /= 10;
}
for(int i = 0; i < length; i++) {
reanswer[i] = answer[length - i - 1];
}
return reanswer;
}
}
문제 : FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원%'
ORDER BY FACTORY_ID
10시부터 11시까지는 팀 프로젝트 추가 요구 사항 코드를 작성했다.
private static void averageInquiry() {
System.out.print("평균 등급을 조회할 학생의 ID를 입력하세요: ");
String studentId = sc.next();
// 학생 이름 출력
if (!studentList.containsKey(studentId)) {
System.out.println("해당 학생이 존재하지 않습니다.");
return;
}
String studentName = studentList.get(studentId).getStudentName();
System.out.println("학생 이름: " + studentName);
// 각 과목의 평균 등급 계산 및 출력
for (Subject subject : subjectList) {
int totalScore = 0;
int count = 0;
for (Score score : scoreList) {
if (score.getStudentId().equals(studentId) && score.getSubjectId().equals(subject.getSubjectId())) {
totalScore += score.getScore();
count++;
}
}
if (count > 0) {
double averageScore = (double) totalScore / count;
Grade averageGrade = GradeCalculator.calculateGrade((int) averageScore, subject.getSubjectType());
System.out.println("과목: " + subject.getSubjectName() + ", 평균 등급: " + averageGrade);
}
}
}
각 과목 별 평균을 조회하고 싶은 학생의 이름을 입력 받아 과목별 평균을 조회할 수 있도록 작성한 코드!
// 학생 이름과 수강 과목 출력
if (!studentList.containsKey(studentId)) {
System.out.println("해당 학생이 존재하지 않습니다.");
return;
}
String studentName = studentList.get(studentId).getStudentName();
System.out.println(studentName+"학생이 수강중인 과목 입니다.");
// 수강 중인 과목 목록 출력
Student student = studentList.get(studentId);
List<String> subjects = student.getSubjects();
for (String subjectId : subjects) {
for (Subject subject : subjectList) {
if (subject.getSubjectId().equals(subjectId)) {
System.out.println(subject.getSubjectId() + " - " + subject.getSubjectName());
break;
}
}
}
// 조회할 과목 선택
System.out.print("조회할 과목의 ID를 입력하세요: ");
String subjectId = sc.next();
// 해당 과목의 성적 조회
System.out.println("=== " + getSubjectNameById(subjectId) + " 과목의 성적 ==="); // 과목 이름을 함께 출력
for (int round = 1; ; round++) {
Grade grade = findGrade(subjectId, studentId, round);
if (grade == Grade.N) {
break; // 해당 회차의 학점이 없으면 중지
}
System.out.println(round + "회차 : " + grade);
}
}
// 과목 ID를 기반으로 과목 이름을 가져옴
private static String getSubjectNameById(String subjectId) {
// 과목 리스트를 반복하면서 과목 ID와 일치하는 과목을 찾음
for (Subject subject : subjectList) {
if (subject.getSubjectId().equals(subjectId)) {
return subject.getSubjectName(); /* 과목 ID도 같이 출력 할려면 : subject.getSubjectId() 추가 */
}
}
// 일치하는 과목 ID가 없을 경우
return "알 수 없는 과목";
}
기본 기능 중 내 파트에서 추가적으로 수정하면 좋을 것 같은 부분을 수정하였다.
1. 입력 받은 학생이 수강하는 과목과 입력받은 학생 ID에 맞는 학생의 이름을 보여주도록 수정
2. 아래에 조회한 점수의 과목이 어떤 과목인지 보여주도록 수정
이후 튜터님과 어떤 반을 수강하면 좋을지에 관한 상담과 현재 내 상태에 맞는 학습 방법에 대해 이야기를 나누었다.
타입[] 변수이름
타입 변수이름[]
타입[] 변수이름; // 배열 선언(배열을 다루기 위한 참조변수 선언)
변수이름 = new int[5] // 배열 생성(실제 저장공간을 생성)
나눠서 선언하고, 초기화 하려면 1번 방법을 사용해야 함
int[] score;
score = new int[] {초기화할 값, …};
어제부터 할까말까 고민하다가 어제 3D 잔디 설정에 너무 많은 시간과 기력을 쏟아서 시도해보려다 포기한 productive box! 총 3번의 시도 끝에 성공! 포기할까 하는 생각이 들었지만 그래도 꿋꿋하게 해냈다! 장하다 나 자신🥰 그래도 어제 3D잔디 설정하면서 이것저것 찾아보고 해봐서 그런가 비교적 쉽게 끝냈다! 이젠 깃허브 프로필 꾸미기 무서울게 없다고~😁