1081.중첩반복문
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
System.out.println(i+" "+j);
}
}
}
}
정규표현식 = 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식
-java.util.regex 패키지 안에 Pattern 클래스와 Matcher 클래스 사용1)Pattern 클래스
->Pattern.matches(pattern정규표현식, val 매개값) 메소드 사용 -> boolean으로 true면 일치
- compile(String regex) 메서드 : 주어진 정규표현식으로부터 패턴 생성
-> Pattern pattern = Pattern.compile( "^[a-zA-Z]*$" ); //영문자만2)Matcher 클래스
-> 대상 문자열의 패턴 해석 및 주어진 패턴과 일치하는지 판별
Matcher matcher = pattern.matcher(val);
System.out.println(matcher.find()); -> find() 대상 문자열과 패턴 일치하면 true하고 그 위치로 이동
boolean name_check = Pattern.matches( "^[가-힣]*$" , name); -> matches() 대상 문자열과 패턴이 일치하면 true
정규 표현식 | 의미 |
---|---|
^[0-9]*$ == \d | 숫자 |
^[a-zA-Z]*$ | 알파벳 |
^[가-힣]*$ | 한글 |
^[a-zA-Z0-9] | 알파벳이나 숫자 |
^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]+$ | 이메일(Email) |
\w+@\w+.\w+(\.\w+)? | 이메일(Email) |
^01(?:0 | 1 |
import java.util.*;
import java.util.regex.Pattern;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String a= sc.nextLine();
boolean regex = Pattern.matches("^[A-Z]*$", a);
if(regex){
int num= Integer.parseInt(a,16);
for(int i=1; i<16; i++){
System.out.format("%X*%X = %X%n", num,i,num*i);
}
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
if (i == 3 || i == 6 || i == 9) {
System.out.print("X ");
} else
System.out.printf(i + " ");
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int r=sc.nextInt();
int g=sc.nextInt();
int b=sc.nextInt();
int count=0;
for(int i=0; i<r; i++){
for(int k=0; k<g; k++){
for(int c=0; c<b; c++){
System.out.println(i+" "+k+" "+c);
count++;
}
}
}
System.out.print(count);
}
}
1085
1086
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num =sc.nextInt();
int sum=0;
for(int i=1; sum<num; i++){
sum= sum+i;
}
System.out.print(sum);
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num =sc.nextInt();
for(int i=1; i<=num; i++){
if(i%3!=0) {
System.out.print(i + " ");
}
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
int d=sc.nextInt();
int n=sc.nextInt();
int num=0;
for(int i=0; i<n;i++){
num =a+i*d;
}
System.out.println(num);
}
}
1090.10 10 10인경우 int단위 넘어가므로 long으로 해야한다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
int r=sc.nextInt();
int n=sc.nextInt();
long result=a;
for(int i=1; i<n;i++){
result *=r;
}
System.out.println(result);
}
}
1091.수열
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int a = sc.nextInt();
int m = sc.nextInt();
int d = sc.nextInt();
int n = sc.nextInt();
long result=a;
for(int i=1; i<n; i++){
result= (result*m)+d;
}
System.out.println(result);
}
}
1092.최소공배수
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int day= 1;
while (day % a != 0 || day % b != 0 || day % c != 0) {
day++;
}
System.out.println(day);
}
}
1093.1차원 배열
import java.util.*;
import java.lang.*;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int n = sc.nextInt(); //횟수
int [] count = new int[24];
for(int i=0; i<n; i++){
int num= sc.nextInt();
count[num -1]+=1;
}
for(int i=0; i<23;i++){
System.out.print(count[i]+" ");
}
}
}
1094.1차원 배열 거꾸로 출력
import java.util.*;
import java.lang.*;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int n = sc.nextInt(); //횟수
int [] count = new int[n];
for(int i=0; i<n; i++){
int num= sc.nextInt();
count[i]=num;
}
System.out.println(count.length);
for(int i=count.length-1; i>=0;i--){
System.out.print(count[i]+" ");
}
}
}
import java.util.*;
import java.lang.*;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int n = sc.nextInt(); //횟수
int [] count = new int[n];
for(int i=0; i<n; i++){
int num= sc.nextInt();
count[i]=num;
}
int fast = count[0];
for(int i=0; i<count.length;i++){
if(count[i]<fast){
fast= count[i];
}
}
System.out.println(fast);
}
}
1096.바둑판 2차원 배열 출력
import java.util.*;
import java.lang.*;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int n = sc.nextInt(); //횟수
int array[][] = new int[19][19];
int x,y;
for(int i=0; i<n; i++){
x=sc.nextInt();
y=sc.nextInt();
array[x-1][y-1]=1;
}
for(int i=0; i<=array.length-1; i++){
for(int j=0; j<= array.length-1; j++){
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}
1097,1098,1099번 문제 -> BufferedReader 이용
1) import java.io.*; import 하기
2)BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader 선언 String s = bf.readLine(); //String 문자열 받기 (리턴값은 string으로 고정) int i = Integer.parseInt(bf.readLine()); //다른 타입으로 입력 받으려면 형변환 필수!
3)Main 클래스 옆에 throws IOException을 통해 예외 처리 필수!
<데이터 가공법>
1)StringTokenizer 사용 : 입력 받은 값을 공백 단위로 구분하여 순서대로 호출StringTokenizer st = new StringTokenizer(br.readLine()); //StringTokenizer 인자값에 입력 문자열 넣음 int a = Integer.parseInt(st.nextToken()); //첫번째 호출을 to int로
2)String을 한번에 받아서 split를 이용해 배열로 변환String s= br.readLine(); String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 저장
1) buffer를 잡아 놓았기 때문에 반드시 flush(), close() 호출해서 뒤처리 해야함
2) bw.write()는 줄바꿈 미포함
3)BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //할당된 버퍼에 값 넣어주기 String s = "abcdefg"; //출력할 문자열 bw.write(s+ "\n"); //버퍼에 있는 값 전부 출력 bw.flush(); //남아있는 데이터를 모두 출력시킴 bw.close(); //스트림을 닫음
bufferedWriter 예시
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
for(int i=0; i<T; i++){
st = new StringTokenizer(br.readLine());
bw.write((Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken()))+"\n");
}
bw.close();
}
}
입력
5
1 1
12 34
5 500
40 60
1000 1000
--------------
결과
2
46
505
100
2000