전체 글 202

자료구조와 함께 배우는 알고리즘 입문 [자바편] : 가우스 덧셈

가우스의 덧셈이란? 연속된 자연수의 합을 구하는 방법이다.일정한 정수가 순서대로 나열되었을 때 맨 앞 정수와 맨 뒤 정수를 더해나가는 것으로, for/while문보다 효율이 좋다. 예를 들어,1 2 3 4 5 6 7 8 9 10 이라는 숫자가 있다면,1+10, 2+9, 3+8, 4+7, 5+6 11을 총 5번 더한 것과 같다는 뜻이다. 맨 첫 항 + 맨 마지막 항을 더한 값이 총 5번 있고,2개씩 묶이므로 2n = 10 , 총 5를 곱하였다. 그러므로 공식은 (맨 첫 항 + 맨 마지막 항) / (항의 개수/2) 인 것이다!! package class01;public class Gauss { public static void main(String[] args) { // 연속되는 정수의 합을 구한다...

[Day 9] JAVA 객체

[객체지향프로그래밍(OOP)]---> 객체지향언어인 "JAVA" 를 사용 [객체지향언어] -> 메서드에게 주어(주체)가 생기는 것 [객체지향언어의 4가지 특징]1. 추상화 : 객체들의 공통되는 특징을 코딩할 수 있다! 객체들의 설계(틀)를 제공할 수 있다! 2. 정보은닉   1) 새로운 것을 개발할 때, 기존의 것을 그대로 활용할 수 있음    --> 기존의 것이 어떤 기능을 하는지만 알면 된다!    기존의 것에 대한 성분분석 X(알면 좋음)    2)  개발 이후 이슈가 발생했을 때, 접합부분만 검사하면 된다. --> 개발 시간 / 비용 단축 (함수를 쓰는 이유와 동일.) ==> 유지보수 용이 ★ 3. 상속 : 개발완료된 코드를 새로 개발하는 코드에 전부 가져올 수 있음 4.  다형성 : 함수(메서드..

IT/JAVA 2025.01.10

팀프로젝트(스터디) 질문 및 코드리뷰/피드백

1. 함수의 3요소 input, output, 기능 2. 함수화를 하는 이유 1) 중복이 없는 코드를 작성하고,2) 코드를 재사용하기 용이하며,3) 개발 시간이 단축되고,4) 개발 비용이 절감되며,5) 오류의 파급효과가 줄어든다. 3. MVC - VIEW가 하는 역할  VIEW가 사용자가 입력하는 정보를 안전하게 걸러서 컨트롤러에게 전해줘야 함 => 유효성 검사 메뉴 입력, 학생전체출력, 학생번호 입력, 학생 정보 출력, 추가할 학생 이름 입력, 학생 추가 완료 안내 등->> (뷰가 해야 하는 일(뷰의 기능)) 4. test() 라는 같은 이름을 가지는 함수를 또 선언할 수 있나?  YES- 오버로딩 : 매개변수와 인자 타입을 다르게 해서 같은 이름의 메소드를 여러 개 선언할 수 있다. (= 메서드 시그..

IT/코딩 스터디 2025.01.10

자료구조와 함께 배우는 알고리즘 입문 [자바편] : 중앙값 구하기

최소값, 최대값 로직은 이용해볼 일이 많은데 중앙값 로직은 처음 봐서 일단은 책을 보지 않고 직접 고민해보았다. 한 가지의 경우만 고려하려고 하지 않았고 최대한 많은 경우의 수를 떠올리려 노력했다. 1 ) 맨 처음에는 모든 수들의 평균값을 구해서 평균값과 가장 가까운 수를 구하면 중앙값이 되지 않을까 했는데 그렇지 않다는 것을 알게 되었다. 왜냐하면 예를 들어1, 2, 100 3개의 숫자가 있다.이들의 평균값을 구하면 34.33... 이라는 숫자가 나오고 34.33...은 가장 큰 100이라는 숫자에 가깝기 때문에 절대 중앙값이 될 수 없다. 즉, 평균은 중앙값이 될 수 없다. 2 ) 그러다가 생각한 점은, 앞에서 최댓값 알고리즘을 작성할 때 모든 경우의 수를 일일이 if문으로 검사하였는데, 중앙값도 i..

[JAVA] 배열, 함수, 삽입정렬

오늘은 배열의 값을 랜덤으로 생성하고 삽입정렬을 통해 오름차순/내림차순으로 정렬하는 프로그램을 작성하였다. [한글코딩]시작 안내문 함수() { 삽입정렬 프로그램을 시작합니다! 출력 } 자료형 선택 함수() { 스캐너 선언 입력 저장할 변수 선언 언제 올바르게 입력할지 모르므로 무한루프 { 자료형을 선택해주세요! (char(문자)/int(정수)) 라고 출력 (c 혹은 i 입력 >> ) 라고 출력 입력받기 만약(금지어 함수()) { 대문자를 소문자로 변환 탈출 } 다시 입력해주세요! } 입력값 리..

IT/JAVA 2025.01.08

Java Section 06 : 배열

01 배열의 정의와 생성 [배열]: 같은 자료형의 변수를 지정하여 여러 데이터를 저장할 수 있는 저장 공간■ 같은 자료형의 데이터를 하나의 변수에 저장해 처리하는 방법으로, 같은 자료형의 데이터들을 효율적으로 다룰 수 있다.  ■배열 선언 방법자료형[ ] 변수 이름;int [ ] arr;자료형 변수 이름[ ];int arr[ ]; ■ 배열은 여러 개의 데이터를 저장하기 위한 별도의 공간이 필요하므로, 배열을 선언만 하고 값을 부여하지 않으면, null이라는 값이 부여된다. ■ 배열은 생성과 동시에 데이터 자료형 별로 기본 값이 주어진다.정수형0실수형0.0문자형' '객체형null ■  배열은 값을 직접 변수에 저장하는 것이 아니라, 주소값이 저장되어 해당 주소를 통해 실제 데이터에 접근하는 참조형 변수이다..

IT/JAVA 2025.01.07

[Day 7] 함수

[함수의 3요소] ==> "메서드 시그니쳐"① input : 입력값, 인수, 인자, 매개변수, 파라미터, args② output : 출력값, 결과값, return, 리턴값, 반환값③ 기능 : 기능은 함수명을 통해 유추할 수 있어야 한다.(예를 들어, println(), main(), nextInt(), equals() 등.. 전부 메서드 명을 보면 함수의 기능이 유추가 가능하다.) 함수를 사용하는 이유는 유지보수에 용이한 코드를 작성하기 위해서!! 함수를 사용하면 코드를 줄일 수 있다.같은 코드가 여기저기 작성되면 유지보수하기에 좋지 않다. 유지보수에 용이한 코드는 ? 중복이 없는 코드를 말한다.  중복되는 코드를 "함수화" (= 모듈화, 컴포넌트화, 고도화, 성능최적화) 함으로써 1) 중복이 없는 코드..

IT/JAVA 2025.01.07

포켓몬 게임

오늘 만들어본 프로그램은 포켓몬 게임이다. 배열에 포켓몬을 저장하고 포켓몬 목록 출력, 포켓몬 시합 참여, 포켓몬 잡기 등을 할 수 있는 프로그램이다. [내가 작성하던...코드]Scanner sc = new Scanner(System.in); Random rand = new Random(); String[] poList = new String[3]; // 내 도감 int cnt = 0; // 아직 한마리도 안잡음 poList[0] = "꼬부기"; // 한마리 잡음 cnt++; int[] poLvList = new int[3]; //레벨이 저장된 배열 poLvList[0] = 5; String[] pokemon = new String[5]; // 다섯 마리 도감. 잡을 수 있는 포..

IT/JAVA 2025.01.06

선택정렬 - 발표 피드백

1. 시작할 때 팀명 소개 좋았다. 부족한 점이라면, 발표를 시작하기 전과 마칠 때 자기 소개를 하는 것이 좋다.(안녕하세요 선택정렬 그림을 설명할 ㅇㅇㅇ입니다 ~, 이상 선택정렬을 소개한 ㅇㅇㅇ입니다~) 2. 한글코딩하는 습관을 기르자!! 항상 한글코딩 신경 쓸 것 3. 발표내용 이해하고 발표 진행한 점 굳 4. 발표 시 '그냥' 이라는 단어는 사용 금지 5. 코드를 짰다, 자격증을 땄다 등의 언어 사용 자제할 것. 코드를 작성했다, 자격증을 취득했다 등의 언어 사용할 것 이번 팀은 기준이 무엇인가 했더니, 한글 코딩 습관화가 필요한 사람들이 모인 팀이라고 하셨다. 맞다. 한글 코딩 습관화가 필요하다. 그래도 요즘 계속 한글 코딩을 연습하다보니 조금씩 되고 있는 것 같다. 이번 팀플때도 한글 코딩부터 ..

IT/JAVA 2025.01.06