11382 꼬마 정민
10^12는 int(4byte) 의 범위가 아니기 때문에 long을 써야함(8byte)
10171 고양이
역슬래쉬 문제
역슬래쉬 문자는 \만 쓰는게 아닌 \\ 을 써야함
쌍따옴표 출력 : \"
* 특수문자 : \ (이스케이프 문자)
1. 쌍따옴표 출력 : \"
2. 줄바꿈 출력 : \n
3. 역슬래쉬 출력 : \\
10172 개
역슬래쉬 문자는 \만 쓰는게 아닌 \\ 을 써야함
쌍따옴표 출력 : \"
1330 두 수 비교하기
9498 시험 성적
2753 윤년
14681 사분면 고르기
2884 시계
조건문은 여러개 써도 됨
1) if문
2) if / else문
3) if / else if / if문
시침 (조건문 1) 시간이 0시일때는, 시간을 23시로 고치고 분에서는 - 45 아닐때는 그냥 - 1
0시 이면 H를 23으로 고정시키면 안됨. 왜냐면 0시 50분이 들어오면 23시 5분이 아닌 0시 5분
분침 (조건문 2) 분에서는 - 45 하는데, 음수일때는 60 + (분 - 45), 시간 - 1
Verify01
연습 1 : 문자열 반복해서 출력하기
String 5
String을 5번 반복해라
반복문 횟수에 num
연습 2 : 대소문자 바꿔서 출력하기 ★문자열 조작하기★
특정위치에 있는 문자 뽑아내기 + 대소문자 변경
0. 입력하기 변수 : str
1. 반복문으로 계속 돌릴예정 : fori
2. 하나하나씩 뽑기 : char temp = str.charAt(i)
3. toLowerCase()는 문자열만 지원하기 때문에 char형태로 되어있는 temp를 문자열로 바꿔줘야 함
toLowerCase(), equals : char은 지원하지 못하기 때문에 String.valueOf()로 문자열로 변환해줘야함
String temp = String.valueOf(str.charAt(i))
temp 0번이 소문자면 대문자로 변경
4. 문자열 비교로 문자열인 temp가 temp.toLowerCase와 같냐 = temp 가 소문자냐
그러면 대문자로 변경 : temp.toUpperCase()
5. 문자열 비교로 문자열인 temp가 temp.toLowerCase와 다르냐 = temp가 대문자냐
그러면 소문자로 변경 : temp.toLowerCase()
연습 3 : 문자열 돌리기
연습 4 : 덧셈식 출력하기
(num + num2) 이렇게 해야 이게 우선순위로 돼서 숫자 덧셈이 됨
num + num2 이렇게 하면 앞에 = 부터 계산이 돼서 (문자열+숫자) + (숫자) 이렇게 됨
연습 5 : 문자열 붙여서 출력하기
자바에서는 객체를 생성한다는 뜻에서 new 무조건 입력
scanner라는 객체
연습 6 : 홀짝 구분하기
연습 7 : n의 배수
연습 8 : 공배수
연습 9 : flag에 따라 다른 값 반환하기
연습 10 : 두 수의 최대값 구하기 : Math.max(x,y) Math.min(x,y) : 두 수밖에 비교가 안됨
연습 11 : 세 수의 최소값 : 임시변수 min을 먼저 설정해두고 시작
# 방법 1 : a, b 비교 후 그 중 c와 비교 / a,b 비교 후 그 중 c와 비교
# 방법 2 : a,b 먼저 비교 / 그 최솟값과 c와 비교
# 방법 3 : 함수 쓰기
연습 12 : 서로 다른 주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
Sec02 : 반복문 - while ★
while문
do while 문 (잘 쓰지는 않음)
먼저 누적합 1번 실행 후 -> 조건식보고 반복문 돌릴지 말지 결정
Sec02 : 반복문 중단 - break ★ (무한루프때 사용, 자주 사용)
break (while과 같이 사용) - 무한반복문
Sec02 : 반복문 - continue ★
continue (for과 같이 사용)
Chap05
Sec01 : 참조 자료형 / 기본 자료형이 무엇인가?
참조자료형은 왜 == 를 안쓰고 equals를 써야하는가?
(기술 면접 대비)
int a = 1;
int b = 2; (4byte)
String str = "신민철";
이게 컴퓨터에 어떻게 저장되느냐
우리가 파일 만들 때 js / css 처럼 폴더 관리를 함
컴퓨터도 메모리 관리를 함 => 메모리 경제적/효율적으로 관리 가능
스택방 / 힙방
- 스택방 : 일반변수들이 들어감
스택방번호 / 변수명 / 값
10 a 1(4byte)
20 b 2(4byte)
정수, boolean, char는 바이트가 정해져있음. 얘네가 다 스택방에 들어감.
문자열이 문제.
신 : 1byte
민 : 1byte
철 : 1byte => 총 3byte
30 str 신민철 로 넣고싶으나 안됨.
신민철신민철... 문자열 붙이기로 하면 byte가 너무 커짐. 그래서 스택방에 넣을 수가 없음(정수는 무조건 4byte)
얼마나 커질지모르니 스택방에 저장을 못함
- 그래서 힙방에 넣음
힙방번호 변수명
100 신
101 민
102 철
여기의 힙방번호를 스택방의 값에 넣음
스택방번호 / 변수명 / 값
30 str 100(힙방의 방번호)
힙방의 방번호를 참조한다 = 참조 자료
기본자료형 int char => 스택방의 값으로 다 들어가지만
문자열 => 스택방에는 힙방번호만 있고 변수명은 힙방에 들어가있음
객체, 배열도 무한히 커지기에 =>힙방번호가 들어가있음
Sec02 : 배열(참조자료형)
1번째 배열 정의
변수 : 한 가지 값을 저장하는 곳
배열 : 여러가지 값을 저장하는 곳
=> 값이 많기 때문에, 반복문이 나올 가능성이 큼
자료형[ ] 변수 = {값1, 값2, ..., 값n}
변수[인덱스번호];
자료형이 앞에 있으면, 사용할 때 자료형 빼고 사용
int score[ ]
sum = sum + score[i] // 여기는 int 빼고 i만 사용
score[i] : 90, 91, 92 등등 숫자(배열값)를 뜻함
* 변수의 값이 어떻게 변하는지, 완전히 실행되고 나서가 아닌 중간결과를 알고싶을 때 = 디버깅 또는 로깅 *
score[i]를 알고싶을 때 System.out.println( " ::: " + score [ i ] )
결과값과 헷갈릴 수 있으니 본인만 알아볼수있는 암호적기
이런 배열 : 자료 구조 (총 3가지 있음)
=> 변수만 가지고 코딩하기 쉽지않기에 반복문을 돌려서 코딩을 효율적으로 사용할 수 있음
'JAVA' 카테고리의 다른 글
#28 [JAVA] 열거자료형 Week, 객체지향, 생성자 함수 (0) | 2024.02.02 |
---|---|
#24 [JAVA] 배열 2,3, 2차원 배열, 향상된 for문, 얇은 복사/깊은 복사, (0) | 2024.01.29 |
#22 [JAVA] 연산자, 조건문, 반복문, 문자열 객체 charAt, 문자열 길이 length (0) | 2024.01.24 |
#21 [JAVA] 환경설정, 기본 자료형, 자동/수동 자료형 변환, 문자열/숫자 변환 함수, Scanner 클래스, 코딩테스트 (0) | 2024.01.23 |
#20 [JAVA] IntelliJ 설치 및 환경설정 (0) | 2024.01.23 |