본문 바로가기

분류 전체보기

(188)
WIL - 2 Fact : 이번주 있었던 일, 내가 한 일 월 : 설연휴 화 : 페어 프로그래밍 1일차 - 코딩 테스트 알고리즘 문제 풀이 수 : 페어 프로그래밍 2일차 - 코딩 테스트 알고리즘 문제 풀이 목 : 페어 프로그래밍 3일차 - 코딩 테스트 알고리즘 문제 풀이 금 : 페어 프로그래밍 4일차 - 코딩 테스트 알고리즘 문제 풀이, 자바 예외 처리 학습 토 : 페어 프로그래밍 5일차 - 코딩 테스트 알고리즘 문제 풀이, 자바 예외 처리, 제네릭 문법, Collection 학습 Feeling : 나의 감정적인 반응, 느낌 페어 프로그래밍을 통해 다른 사람과 같이 알고리즘 문제를 푸는 것이 여러 관점에서 문제를 해석하고 방법을 찾을 수 있어서 좋았음 몇몇 알고리즘 문제들은 상당히 어렵게 느껴졌고, 개발 공부에 많은 ..
페어 프로그래밍 - 코딩 테스트 5 코드 리뷰 - ChatGPT 44. 2016년 페어 프로그래밍 코드 package pair5; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.format.TextStyle; import java.util.Locale; /** * 2016년 * 2016년 1월 1일은 금요일입니다. * 2016년 a월 b일은 무슨 요일일까요? * 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, `solution`을 완성하세요. */ public class Calender { // [31 29 31 30 31 30 31 31 30 31 30 31] // a = 월, b = 일 // 1월 1일 = 금 // 1월 ..
Java - 오류 및 예외 처리, 제네릭, Collection 오류 및 예외 처리 오류(Error) : 일반적으로 회복이 불가능한 문제 시스템 레벨 도는 환경적인 이유로 발생 코드의 문제로 발생하는 경우도 있으나, 발생하면 일반적으로 회복이 불가능 에러가 발생한 경우 어떤 에러로 프로그램이 종료되었는지 확인하고 대응 예외(Exception) : 일반적으로 회복이 가능한 문제 회복이 가능하다는 전제는 예외가 발생할 수 있다는 것을 인지하고 대응했을 것 코드레벨에서 할 수 있는 문제사항에 대한 대응은 "예외 처리"에 속함 예외의 종류 코드 실행 관점에서의 예외 종류 컴파일 에러(예외) .java 파일을 .class 파일로 컴파일할 때 발생하는 에러 대부분 자바 프로그래밍 언어의 규칙을 어겨서 발생 없는 클래스 호출, 접근이 불가능한 프로퍼티나 메서드에 접근하는 경우 해..
페어 프로그래밍 - 코딩 테스트 4 개인 풀이 코드 리뷰 - ChatGPT 40. 가장 가까운 같은 글자 package test2; public class Test40 { //문자열 s의 각 위치마다 자신보다 앞에 나오면서 //자신과 가장 가까운 곳에 있는 같은 글자의 위치 // "banana"가 주어진다면 // b = -1, a = -1, n = -1, a = 2, n = 2, a = 2 // 자신 앞에 없을 때 -1 반환, 자신 앞에 값이 있을 때 얼마나 앞에 있는지 반환 // count는 자신을 0으로 했을 때 글자 1개 마다 1씩 증가하도록 // 모든 단어의 결과를 int[] 배열로 반환 // 문자열을 split으로 모두 "" 단위로 자르고 // int[] answer의 크기는 s.length // StringBuilder로 Rev..
페어 프로그래밍 - 코딩 테스트 3 개인 풀이 코드 리뷰 - ChatGPT 29. 최대 공약수와 최소 공배수 class Solution { public int[] solution(int n, int m) { // 유클리드 호제법 사용 int[] answer = {gcd(n, m), lcm(n, m)}; return answer; } //최대 공약수 구하기 public static int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } //최소 공배수 구하기 public static int lcm(int a, int b) { return a * b / gcd(a, b); } } 유클리드 호제법 사용이 핵심 코드 리뷰 가독성 명명 규칙: 함수명 gcd와 lcm은 각각 최대 ..
페어 프로그래밍 - 코딩 테스트 2 개인 풀이 코드 리뷰 - ChatGPT 14. 서울에서 김서방 찾기 class Solution { public String solution(String[] seoul) { String answer = ""; for (int i = 0; i < seoul.length; i++) { if (seoul[i].equals("Kim")) { answer = "김서방은 "+i+"에 있다"; break; } } return answer; } } 코드 리뷰 가독성 변수 이름: answer 변수는 적절하게 이름이 지어졌습니다. 그러나, seoul 배열의 이름은 이 배열이 무엇을 담고 있는지에 대한 정보를 더 명확하게 해주면 좋을 것 같습니다. 예를 들어, names나 people처럼 더 의미 있는 이름을 사용할 수 있습..
페어 프로그래밍 - 코딩 테스트 개인 풀이 코드 리뷰 - ChatGPT 1. 짝수와 홀수 class Solution { public String solution(int num) { String answer = (num % 2 == 0) ? "Even":"Odd"; return answer; } } 코드 리뷰 코드 스타일과 가독성 변수명: answer 변수명은 명확하게 메소드의 결과를 나타냅니다. 이 경우와 같이 간단한 조건문에서는 변수 없이 직접 return하는 것도 고려할 수 있습니다. 조건문: 삼항 연산자를 사용하여 짝수와 홀수를 판별하는 로직은 매우 간결하며 가독성이 좋습니다. 성능 이 경우, 성능 최적화는 크게 고려할 사항이 아닙니다. 주어진 코드는 이미 매우 효율적입니다. 정수의 홀수/짝수 판별은 비트 연산을 사용하여 더 최적..
WIL - 1 Fact : 이번주 있었던 일, 내가 한 일 월 : 팀원과 간단한 Git을 사용한 협업 연습, Java 기초 개념 복습 화 : 연산자, 조건문, 반복문, 배열 복습 수 : 2인 1조 팀 프로젝트 진행(숫자 야구 프로그램 개발), 객체 지향, 상속, 다형성 복습 목 : 1주차 테스트 진행, 다형성 복습, 역할과 구현, OCP 학습 Feeling : 나의 감정적인 반응, 느낌 Git 사용이 익숙하지 않아서 간단한 push, merge, 충돌에 대한 수정 등을 진행하는 데 어려움을 겪었음. 앞으로 Git을 사용하는 연습을 통해 익숙해 질 필요성을 느낌 쉬운 프로그램을 개발하면서도 팀원과 의견 공유를 통해 좀 더 효율적인 개발을 할 수 있었고 나와는 다른 관점으로 코딩하는 것을 보고 배울 수 있어서 좋았음 첫 ..