오늘의 회고
팀프로젝트 마무리
몸이 안좋다 주말엔 조금 줄이자
=================================================================================
오늘 할일 :
자바 코딩 테스트 문제 1개 작성
간단한 개인 프로젝트
스파르타 팀 프로젝트:영상촬영
=================================================================================
공부한 내용
[자바 알고리즘 문제 출처: 프로그래머스]
문제:
알파벳 소문자로 이루어진 두 문자열 str1 과 str2 가 주어질 때, 둘 중 한쪽에만 있는 문자의 개수를 return 하는 solution 함수를 완성하세요
import java.util.*;
class Solution {
public int solution(String str1, String str2) {
int answer = 0;
char[] c1=str1.toCharArray();
char[] c2 =str2.toCharArray();
HashSet<Character> set1 = new HashSet();
HashSet<Character> set2 = new HashSet();
for(int i=0;i<c1.length;i++){
set1.add(c1[i]);
}
for(int i=0;i<c2.length;i++){
set2.add(c2[i]);
}
for(Character c:set2){
if(!set1.contains(c)){
answer++;
}
}
for(Character c:set1){
if(!set2.contains(c)){
answer++;
}
}
return answer;
}
}
정답이긴 한데 코드가 막 짜져있는 느낌이다. 그런데 풀이 영상코드와 유사하다
백번 강의듣기나 책을 보는것 보다 뭐 하나 만들어 보자고 생각해 간단한 프로젝트(성적 관리)를 구현해 보았다.
한 파일에 막 짜지말고 기능적인것을 분리 하고자를 목표로 하였다.
public class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
Student라는 객체를 만들어 주었다 블로그를 작성하다 보니 getName 메소드처럼 사용하지 않고 만들어 둔 메소드들이 눈에 보인다 다음에는 잘 확인하고 깃허브에 올려야 겠다.
import java.util.ArrayList;
public class StudentManage {
ArrayList<Student> students=new ArrayList<>();
// 추가
public void add(String name,int score){
Student student=new Student(name,score);
students.add(student);
System.out.println("추가가 완료 되었습니다.");
}
// 학생 목록 출력
public void studentList(){
for(int i=0;i<students.size();i++){
System.out.println(students.get(i));
}
}
// 최고 점수 학생 보기
public int maxStudent(){
int max=0;
if(students.isEmpty()){
return 0;
}
for(int i=0;i<students.size();i++){
if(students.get(i).getScore()>max){
max=students.get(i).getScore();
}
}
return max;
}
// 최저 점수 학생 보기
public int minStudent() {
int min=101;
if(students.isEmpty()){
return 0;
}
for(int i=0;i<students.size();i++){
if(min>students.get(i).getScore()){
min=students.get(i).getScore();
}
}
return min;
}
// 평균 점수 보기
public int avgStudent() {
int sum=0;
int cnt=students.size();
for(int i=0;i<students.size();i++){
sum+=students.get(i).getScore();
}
return sum/cnt;
}
}
위에서 말한 (백번 강의듣기나 책을 보는.. )이유 이다. 처음에는 한번도 저런식으로 각 기능별로 해본적이 없었던것 같다. 그래서 getter, setter 메소드도 사용하기 매우 어색했고 인스턴스 생성 저 코드가 자기가 작성 안해보면 절대 모른다.
앞으로 간단한 프로젝트부터 조금 난이도 있는 프로젝트를 조금씩 올려야겠다.
'TIL' 카테고리의 다른 글
[TIL] 스파르타 백엔드 캠프 7일차 (0) | 2024.10.08 |
---|---|
[TIL] 스파르타 백엔드 캠프 6일차 (0) | 2024.10.07 |
[TIL] 스파르타 백엔드 캠프 4일차 (1) | 2024.10.03 |
[TIL] 스파르타 백엔드 캠프 3일차 (2) | 2024.10.02 |
[TIL] 스파르타 백엔드 캠프 2일차 (2) | 2024.10.01 |