[SIST] Java_days14
·
TIL/Java
1. 다차원 배열 예제 1-1. 3개의 반(1반에 30명) 학생의 이름, 국어, 영어, 수학 점수를 입력받아서 총점, 평균, 등수, 전교등수 출력하기 코드) import java.util.Scanner; public class Ex01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[][] names = new String[3][30]; double[][] avgs = new double[3][30]; // 면 = 반, 행 = 학생 수, 열 = 0열(국어), 1열(영어), 2열(수학), 3열(총점), 4열(등수), 5열(전교등수) int[][][] infos = new int[3][30][6]; c..
[SIST] Java_days13
·
TIL/Java
1. 병합정렬(Marge Sort) - 비교 기반 정렬의 알고리즘, 이미 정렬되어져 있는 두 개의 배열을 합병하여 한 개의 배열로 만드는 정렬 방식이다. import java.util.Arrays; public class Ex01 { public static void main(String[] args) { int[] m = { 1, 3, 6 }; int midx = 0; int[] n = { 2, 4, 5, 7, 8, 9 }; int nidx = 0; int[] mn = new int[m.length + n.length]; int mnidx = 0; while (midx != m.length && nidx != n.length) { mn[mnidx++] = (m[midx] > n[nidx]) ? n[ni..
[SIST] Java_days12
·
TIL/Java
1. 30명 학생의 이름, 국어, 영어, 수학을 입력받아서 총점, 평균, 등수 출력 days11에 작성된 5번 코딩 이어서 하는 부분이다. public class Ex01 { public static void main(String[] args) { // [42, 231, 199, 10, 247, 42, 263, 28, 255, 120] > 임의로 총점 넣기 int[] tots = new int[10]; // 1. 0~100 임의의 정수를 배열 초기화 Random rnd = new Random(); for (int i = 0; i < tots.length; i++) { tots[i] = rnd.nextInt(301); } // 2. 출력 System.out.println(Arrays.toString(tot..
[SIST] Java_days11
·
TIL/Java
1. 년도와 월을 입력받아서 달력 출력하기 2010년 5월 달력을 출력할 수 있도록 코딩을 한 뒤 반복문을 이용하여 원하는 달력을 출력할 수 있는 코드를 작성하기 달력을 그리기 위해서는 아래와 같은 정보가 필요하다. 1. 달력 그리기(생성) ㄱ. 해당 년도와 월의 1일은 무슨 요일? 2010년 5월 1일은 토요일 1) 총날짜수 구하기 : 1년1월1일 ~ 2010년 5월 1일까지 계산 2) 총날짜수 % 7 : 0(일) 1(월) 2(화) 3(수) 4(목) 5(금) 6(토) ㄴ. 해당 년도와 월의 마지막 날짜는? 2010년 5월은 31일(월) 1) 28일 - 2월(평년) 2) 29일 - 2월(윤년) 3) 30일 - 4월, 6월, 9월, 11월 4) 31일 - 1월, 3월, 5월, 7월, 8월, 10월, 12월..
[SIST] Java_days10
·
TIL/Java
1. 피보나치 수열 - 앞의 두 수의 합이 바로 뒤의 수가 되는 배열 ex) 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 + 144 + 233 ... > 문제 : 150보다 작거나 같은 n항의 값과 총 합을 구하기 * 배열로 푸는 것은 n 값이 얼마나 나올지 모른다고 가정하면 배열의 길이를 정할 수 없기 때문에 배열로 푸는 것은 추천하지 않는다고 하셨다. 그래도 로직을 이해하고 도움이 될 수 있어 내용 정리할 때는 포함시키기로 하였다. 코드 1) 배열 사용 int[] m = new int[150]; m[0] = 1; m[1] = 1; int sum = m[0] + m[1]; System.out.print("1+1+"); for (int i = 2; i < m.len..
[SIST] Java_days09
·
TIL/Java
1. 재귀호출을 가능하면 사용하지 않는게 좋은 이유 > 이유? 자기 자신이 자기 자신을 호출하기 때문에 처리 속도가 늦다. > 꼭 사용해야되는이유? 트리구조를 처리할 때(ex. 검색, 수정, 삭제 > 파일탐색기(폴더/하위폴더/하위폴더)) 2. 팩토리얼(factorial) == 계승 문제 - 팩토리얼이란? 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 말하며 n! 이라고 표시 (ex. n! = n*(n-1)*(n-2)*...*1) * 0! > 0은 양수도, 음수도 아니기 때문에 0! = 1 이라고 약속 코드 1) 5 팩토리얼(5!) 값을 구해서 출력하는 코딩 int n = 5; int result = 1; for (int i = 1; i 음수가 들어가도 팩토리얼 계산 가능 if(result == ..
[SIST] Java_days08
·
TIL/Java
1. 등급을 입력하여 유효성 검사를 하고 입력을 잘못하면 알림 메시지를 출력한 뒤 다시 입력을 받도록 하기 코드 1) 코드 2) 실수 횟수 + 5번 실수시 프로그램 종료 기능 추가 2. 우편번호 유효성 검사하기 - 우편번호를 입력받아서 입력 받은 값이 우편번호이면 '우편번호 O'를 출력하고, 아니면 '우편번호 X'를 출력하기 우편번호 예시) 000-000 또는 00000 코드) ☞ 참고 String matches(String regex)정규표현식 패턴 관련 : Java API Doc 참고하기 https://docs.oracle.com/javase/8/docs/api/index.html Java Platform SE 8 docs.oracle.com // [표현하고싶은 값] = [표현패턴] // [12345..
[SIST] Java_days07
·
TIL/Java
1. 세로 구구단 출력1 출력 예시) 2단 3단 4단 5단 6단 7단 8단 9단 코드 1) 코드 2) 좋은 코딩 2. 세로 구구단 출력2 출력 예시) 2단 3단 4단 5단 6단 7단 8단 9단 코드 1) 코드 2) 좋은 코딩 3. 세로 구구단 출력3 출력 예시) 2단 3단 4단 5단 6단 7단 8단 9단 코드 1) 좋은 코딩[코드 2에서 if 조건을 단을 출력하는 코드 안에 넣음] 코드 2) 4. 이름 붙은 반복문 for문 앞에 '이름'을 넣고 :(콜론)을 붙이면 이름 붙은 for문이 된다. break문 또는 continue문 뒤에 for문의 이름을 붙이면 이름(out)붙인 for문까지 종료 및 실행한다. - break 이름; - continue 이름; 코드 예제1) 5. 세개의 정수를 임의의 수로 초기..
[SIST] Java_days06
·
TIL/Java
1. days05 관련 복습문제 풀이 - 문제) 두 정수 n, m을 입력받아 두 정수 사이의 합을 구해서 출력 입력 형식) 두 정수 입력 ? 3 5 엔터 출력 형식) 3+4+5=12 - 풀이 1) 1) 변수 선언 및 Scanner 메서드 호출 2) while문을 사용하여 풀기 3) for문을 사용하여 풀기 위에 있는 for문과 while문의 문제점이 있다. 입력받은 정수 중 n 값이 m 값보다 크면 반복문 수행이 되지 않아 sum이 0으로 출력이 된다. 이 문제를 해결하기 위해서 아래 코드로 풀기로 했다. - 풀이 2) if (n > m) { for (int i = m; i m ? n : m; for(int i = min; i 코드에서 new int[] 삭제해도 정상 실행됨 * 배열은 배열의 각 요소를 ..