티스토리 뷰

java

코드업 기초 100제 풀이(자바)후기

짱쭈니어 2021. 11. 1. 19:19

1001번부터 1099번까지 기초 100문제를 자바로 풀어보았다.
자바를 기초부터 다시 리마인드할 수 있었다😆

 


 

출력

 

" 출력을 원한다면 System.out.printf(" \"");
\출력을 원한다면 System.out.printf(" \\");

문자열은 공백없이 붙게된다, 공백을 위해 " "추가해도 된다 System.out.println(a+" "+b);

년월일을 출력할때 System.out.printf("%04d.%02d.%02d",year,month,day);
%02d 2칸을 이용해 출력하는데, 2칸이 아니면 0을 붙인다라는게 포함

number의 변수를 출력시에 11자리까지 반올림해서 출력하겠다System.out.printf("%.11f",number);

8진수, 16진수 출력시 System.out,printf("%o,%x,%X")
16진수 대문자출력을 원하면 %X


 

입력

 

정수 scanner.nextInt(); , scanner.nextLong(); int형보다 큰 Long
실수 scanner.nextFloat();
16진수로 받고싶다면, scanner.nextInt(16);
String형으로 받는 scanner.next();, scanner.nextLine();

scanner.nextLine(); 은 공백을 포함해서 받기때문에 split()이 필요

String number = scanner.nextLine(); String [] str = number.split(""); int a = Integer.parseInt(str[0]) ;

split("") 은 공백을 기준, 한문자씩 자를때 사용한다

한문자씩 자르고 난후에 변환을 해줘도 된다. Integer.parseInt()으로 int형으로 변환

실수를 정수, 소수로 나누고 싶다면 split("\\.")을 해준다

string에서 변환을 해줄수도 있다 -> 소숫점 아래 6자리까지 받고싶다

String a = sc.nextLine(); String x6 = String.format("%.6f",a);


 

StringTokenizer

 

간단하게 문자열을 토큰단위로 나눠주는 함수 (split과 동일하게 쪼갠다 )
hasMoreTokens이라는 내장함수가 존재 -> 토큰이 남았는지 확인하는 메소드

import java.util.StringTokenizer; //import에다가 부르기 String date = sc.nextLine(); StringTokenizer token = new StringTokenizer(date,"."); int [] arr = new int[3]; while(token.hasMoreTokens()){ arr[i] = Integer.parseInt(token.nextToken()); i++; }

split 대신에 토큰을 사용함으로서, 남아있는 토큰이 있는지 확인할 수 있다.


 

변환

 

8진수->10진수 int num = Integer.valueOf(number,8);

string형->문자형 char c = sc.nextLine().charAt(0);

아스키코드값은 char형이어야 출력이 된다 char c = (char)num;


 

연산자

 

~,&,|,<<,>> 비트연산자는 bit로 계산을 한 후에 10진수로 출력한다

시프트 연산자 <<는 2를 곱하고, >>는 2를 나누어야한다

a<<b는 a를 b만큼 거듭제곱하는것이다.

자바에선 제곱연산자 대신에 제곱함수Math.pow(a,b)를 사용한다.

등차수열, 등비수열

등차: a + d*(n-1)
등비: (a*Math.pow(r,n-1))

 

세개의 숫자 중에서 가장작은 숫자는?

(a<b?:a:b)<c?:(a<b?:a:b):c 으로 구하면 된다.


여러 숫자중에서 가장 작은 숫자는?
min이라는 변수를 하나 만들어 계속 비교하는식으로 해야한다

 

%나머지 연산자가 쓰일때

  1. 짝수, 홀수인지 확인할때 a%2 ==0 0이면 짝수
  2. 최소공약수 , 두개를 무언가가 만족할때를 구할때
    day%a==0, day%b==0 day는 a, b를 모두 만족할때 구한다

 

조건문, 반복문

 

for(){ if()continue; System.out.println(3); }

if문을 만족한다면 continue를 실행하게 된다.
continue문은 다음반복으로 바로 진행한다 -> 즉 3은 출력되지 않는다.

if() else if() else

else if 문도 조건써줘야 한다.

switch(num){ case 1: System.out.println(1); case 2: System.out.println(2); break; default: break; }

break 문이 없는 case 1이 실행된다면 case2문까지 출력된다
break문 필수~


 

이중배열

 

배열선언

int [] arr = new int[크키]; int [][] arr = new int[크][기];

배열조회

for(int i =0; i<arr.length; i++){ for(int j =0; j<arr[i].length; j++){ System.out.println(arr[i][j]); } }

이렇게 행부터 쓰면 arr[0][0]부터 조회가 된다.


 

BufferReader, BufferWriter

 

-> 버퍼를 이용해 읽고 쓰는 함수
-> 버퍼를 활용하기에, 기존의 scanner, println 보다 빠르다
-> 받는 데이터가 String형으로 받기에, 형변환을 따로 해줘야한다
-> 데이터를 라인단위로 읽을 수 있다.

  1. import java.io.BufferedReader; import.java.io.BufferedWriter; import.java.io.InputStreamReader; import.java.io.OutputStreamReader;
  2. throws IOExceptionBufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String arr[] = br.readLine().split(""); //라인단위로 읽은 후에, split으로 쪼개기 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write(i+k); //print대신에 write를 써주면 된다. //flush(). close()는 반드시 필요 bw.flush(); //남은거 모두 출력하는 메소드 bw.close();
  3. 두가지를 해줘야 BufferedReader, BufferedWriter를 쓸 수 있다.

'java' 카테고리의 다른 글

자바 자동 형변환 Promotion  (0) 2021.12.27
소수 구하기 코드  (0) 2021.11.26
자바 - 코드업 기초 (1041-1050)  (0) 2021.08.12
자바-코드업 기초 (1021-1040)  (0) 2021.08.03
자바 -코드업 기초 (1010-1020)  (0) 2021.07.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함