블 루 브리지 컵 기초 연습 자바 회고 총화

141283 단어 알고리즘
수열 정렬
이것 은 적어도 거품 과 빠 른 배출, 그리고 자바 자체 의 방법 을 파악 해 야 한다.
	//    
	public static void quicksort(int[] arr,int low,int high){
		int i,j,temp,t;
		if(low>high){
			return;
		}
		i=low;
		j=high;
		//             
		temp=arr[low];
		
		while (i<j) {
			//     ,      
			while(temp<=arr[j]&&i<j){
				j--;
			}
			//    ,      
			while(temp>=arr[high]&&i<j){
				i++;
			}
			//         
			if (i<j) {
                t = arr[j];
                arr[j] = arr[i];
                arr[i] = t;
            }
		}
		//       i j         
        arr[low] = arr[i];
        arr[i] = temp;
        //        
        quicksort(arr, low, j-1);
        //        
        quicksort(arr, j+1, high);
	}

자바 빠 른 정렬 함수:
Arrays. sort (), Collections. sort (), 두 가지;
구분:
1. 입력 한 데이터 형식 (예 를 들 어 int 형) 에 대해 ArrayList 정 의 를 사용 하면 ArrayList arr = new ArrayList < > ();/Array List 에 int 형 이 없 으 며 Integer 로 대체 할 수 있 습 니 다.Collection. sort () 방법 으로 정렬 할 수 있 습 니 다.
2. int 로 직접 정의 하 는 배열 (예: int arr [] = new int [5]);Arrays. sort () 방법 으로 정렬 할 수 있 습 니 다.
진 변환
일단 전환 방법 을 되 짚 어 볼 게 요.https://www.cnblogs.com/gaizai/p/4233780.html java 에 내 장 된 방법 중 일 부 는 10 진법 을 16 진법 으로 바 꿉 니 다. Integer. toHexString (int i) 10 진법 을 8 진법 Integer. toOctalString (int i) 10 진법 을 2 진법 Integer. toBinary String (int i) 16 진법 을 10 진법 Integer. valueOf ("FFFF", 16). toString () 으로 바 꿉 니 다.8 진법 10 진법 Integer. valueOf ("876", 8). toString () 2 진법 10 진법 Integer. valueOf ("0101", 2). toString () 을 지정 한 자릿수 로 변환 합 니 다.https://blog.csdn.net/wahaha13168/article/details/83008252 그러나 알고리즘 중의 숫자 는 매우 크 고 long 유형 은 19 자리 밖 에 사용 할 수 없습니다.
//2    10  
private static String toOctal(String strBinary) {
		int len = strBinary.length();
		int k;
		StringBuffer stb = new StringBuffer();
		if(strBinary.substring(0, 3).equals("000")) k=3;
		else k=0;
		for(int i=k;i<len-2;i+=3){
			String string = strBinary.substring(i,i+3);
			if(string.equals("000")) stb.append("0");
			else if(string.equals("001")) stb.append("1");
			else if(string.equals("010")) stb.append("2");
			else if(string.equals("011")) stb.append("3");
			else if(string.equals("100")) stb.append("4");
			else if(string.equals("101")) stb.append("5");
			else if(string.equals("110")) stb.append("6");
			else if(string.equals("111")) stb.append("7");
			/*switch (Integer.valueOf(strBinary.substring(i, i+3))) {
			case 000: stb.append("0"); break;
			case 001: stb.append("1"); break;
			case 010: stb.append("2"); break;
			case 011: stb.append("3"); break;
			case 100: stb.append("4"); break;
			case 101: stb.append("5"); break;
			case 110: stb.append("6"); break;
			case 111: stb.append("7"); break;
			default:
				break;
			}*/
		}
		
		
		return stb.toString();
	}
    //16    2  
	private static String toBinary(String strHex) {
		int len_str = strHex.length();
		StringBuffer stb = new StringBuffer();
		for(int i=0;i<len_str;i++){
			switch (strHex.charAt(i)) {
			case '0': stb.append("0000"); break;
			case '1': stb.append("0001"); break;
			case '2': stb.append("0010");break;
			case '3': stb.append("0011"); break;
			case '4': stb.append("0100"); break;
			case '5': stb.append("0101"); break;
			case '6': stb.append("0110"); break;
			case '7': stb.append("0111"); break;
			case '8': stb.append("1000"); break;
			case '9': stb.append("1001"); break;
			case 'A': stb.append("1010"); break;
			case 'B': stb.append("1011"); break;
			case 'C': stb.append("1100"); break;
			case 'D': stb.append("1101"); break;
			case 'E': stb.append("1110"); break;
			case 'F': stb.append("1111"); break;
			default: break;
			}
		}
		
		return stb.toString();
	}


만약 범위 가 초과 되 지 않 는 다 면 롱 을 사용 할 수 있다
import java.util.Scanner;
//10   16
public class Main {
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    long a = in.nextLong();
    System.out.print(Long.toHexString(a).toUpperCase());//             
}
}


특수 회 문수
123321 은 매우 특수 한 숫자 로 왼쪽 에서 읽 는 것 과 오른쪽 에서 읽 는 것 이 같다.정수 n 을 입력 하고 프로 그래 밍 은 이러한 5 비트 와 6 비트 10 진 수 를 구 합 니 다. 여러분 의 숫자 를 만족 시 키 는 합 은 n 과 같 습 니 다. 해결 방법 은 바로 폭력 법 입 니 다. (모든 5 자리 6 자리 수 를 한 번 순환 시 켜 판단 하면 됩 니 다)
회문수
1221 은 매우 특수 한 숫자 입 니 다. 왼쪽 에서 읽 는 것 과 오른쪽 에서 읽 는 것 은 똑 같 습 니 다. 프로 그래 밍 은 모든 네 자리 10 진수 입 니 다.
첫 번 째 방법 은 역시 윗글 과 같은 폭력 법 입 니 다. 두 번 째 방법 은 숫자 를 StringBUilder 로 바 꾸 어 판단 하 는 것 입 니 다.
public class huiwenNum {
 public static void main(String args[]){
  String a;
  for (int i=1000;i<10000;i++){
   a=String.valueOf(i);      #       Integer.valueOf("12")

                                        #       String.valueOf(12)
   StringBuilder b=new StringBuilder(a);        #    String   StringBuilder,         reverse
   b.reverse();
   String c=new String(b);      #      StringBuilder   String
   if (a.equals(c)){                            #          equals,==        
    System.out.println(i);                 #      ,   ==,    FALSE
   }  
  }
 }
}

특수 한 숫자
폭력 순환\# Math. pow (a, 3) 에서 나 온 것 은 a 의 3 차방 이다.
양 휘 삼각형
2 차원 배열 로 문 제 를 풀 면 양 휘 삼각형 규칙 이 다음 줄 인 것 을 발견 할 수 있다. 두 번 째 줄 부터 이전 줄 의 두 수 를 더 하면 문 제 를 풀 수 있다. 주요 난점 은 비교적 많은 수치 범위 의 통 제 를 포함한다.
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a[][]=new int[n][n];//         
		for(int i=0;i<n;i++){
			a[i][0]=1;
			a[i][i]=1;
			if(i>1){
				for(int j=1;j<i;j++){//           
					//     1~i  
					a[i][j]=a[i-1][j-1]+a[i-1][j];
				}
			}
		}
		for(int i=0;i<n;i++){
			for(int j=0;j<=i;j++){//             
				System.out.print(a[i][j]+" ");
			}
			System.out.println();
		}

	}

}

찾기 정수
n 개의 정 수 를 포함 하 는 수열 을 보 여 줍 니 다. 정수 a 가 수열 에서 처음 나타 난 것 이 몇 번 째 입 니까?
하나의 순환 이 끝나 고 지나 간다.
수열 특징
지내다
자모 도형
알파벳 을 이용 하여 아름 다운 도형 을 구성 할 수 있 습 니 다. 다음은 하나의 예 를 들 어 ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 입 니 다. 이것 은 5 줄 7 열의 도형 입 니 다. 이 도형 의 규칙 을 찾 아 n 줄 m 열의 도형 을 출력 하 십시오.
이 문제 의 사고 방향 이 비교적 많 습 니 다. 첫 번 째 줄 의 자 모 를 한 문자열 로 기록 한 다음 에 관찰 한 결과 첫 번 째 줄 의 첫 번 째 자모 + 1 이 바로 본 줄 의 첫 번 째 자모 인 것 을 발견 할 수 있 습 니 다. 그 다음 에 위의 줄 n - 1 의 자 모 를 다음 두 번 째 줄 의 i 위 에 연결 한 다음 에 왼쪽 에서 오른쪽으로 의 자모 도 ABCDEF 에 따라 펼 쳐 진 것 입 니 다 (i = 1, 2..., 26).i 행 i 위 는 오른쪽 에서 왼쪽으로 도 ABCDEF... 에 따라 전개 되 었 습 니 다. 이 규칙 에 따라 세 번 째 i 행 j 열의 알파벳 번호 (0 부터 번호) 는 i 와 j 차 의 절대 값 을 쓴 다음 두 가지 사고 코드 입 니 다.https://blog.csdn.net/allyyhh/article/details/88077960
01 문자열
길이 가 5 자리 인 01 꼬치 에 대해 서 는 한 명 이 0 이나 1 일 수 있 으 며 모두 32 가지 가 가능 하 다.그것들의 앞의 몇 개 는 00000 00001 00010 00011 00100 입 니 다. 이 32 종의 01 열 을 작은 것 부터 큰 것 까지 순서대로 출력 해 주 십시오.
첫 번 째 방법 폭력:
public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		for(int i=0;i<2;i++)
		{
			for(int j=0;j<2;j++)
			{
				for(int a=0;a<2;a++)
				{
					for(int b=0;b<2;b++)
					{
						for(int c=0;c<2;c++)
						{
							System.out.print(i);
							System.out.print(j);
							System.out.print(a);
							System.out.print(b);
							System.out.println(c);
						}
					}
				}
			}
		}
	}


두 번 째 방법: 1 에서 10 진법 으로 2 진법 으로 전환 하 는 방식
public class Main {
	public static void main(String[] args){
			for(int i=0;i<32;i++){
				String result = Integer.toBinaryString(i);
				int  n = Integer.parseInt(result);
				System.out.printf("%05d
"
,n); } } }

윤년 판단
지내다
곱 하기 계산
정수 n 을 입력 하고 n 을 출력 하 십시오!의 값.그 중 n! =123*…*n.
import java.util.Scanner;

public class Main {    
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int i,j;
		int jw = 0;			//  
		int temp;			//      
		int max = 4000;		//4000 
		int[] a = new int[max];
		a[0] = 1;
		
		for(i = 2; i <= n; i ++) {
			for(j = 0; j < max; j++) {
				temp = a[j] * i + jw;
				jw = temp / 10;
				a[j] = temp % 10;
			}
		}
		
		//    0        
		for(i = max-1;i >= 0;i --){
			if(a[i] != 0)
				break;
		}
		
		//    
		for(j = i;j >= 0;j --)
			System.out.print(a[j]);
	}    
}

고밀도 덧셈
대수 더하기, 첫 번 째 방법 은 Biginteger 를 직접 사용 합 니 다.https://blog.csdn.net/zhongkelee/article/details/52289163
import java.math.BigDecimal;
import java.util.Scanner;
 
 
public class _2      {
    public static void main(String[] args) {
        BigDecimal aBigDecimal ;
        BigDecimal bigDecimal;
        BigDecimal cBigDecimal;
        Scanner scanner = new Scanner(System.in);
        aBigDecimal = scanner.nextBigDecimal();
        bigDecimal = scanner.nextBigDecimal();
        cBigDecimal = aBigDecimal.add(bigDecimal);
        System.out.println(cBigDecimal);
         
    }
}

두 번 째 방법 은 성실 함 과 성실 함 을 더 해 지난 문제 처럼 들 어 갑 니 다.
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String a;
        String b;
        int[] k=new int[101];//      
        a=sc.nextLine();//    
        b=sc.nextLine();//   
        int[] c=new int[100];
        int[] d=new int[100];
        //            
        for(int i=0;i<a.length();i++) {
            c[a.length()-1-i]=Integer.parseInt(a.substring(i,i+1));
        }
        //           
        for(int i=0;i<b.length();i++) {
            d[b.length()-1-i]=Integer.parseInt(b.substring(i,i+1));
        }
        //    
       for(int i=0;i<100;i++) {
           k[i]=c[i]+d[i];
       }
       //    
       for(int i=0;i<100;i++) {
           if(k[i]>=10) {
               k[i+1]+=k[i]/10;
               k[i]=k[i]%10;
           }
       }
       int f=0;
       for(int i=100;i>=0;i--) {
           if(k[i]>0) {
               f=i;
               break;
           }
          
       }
       for(int t=f;t>=0;t--) {
           System.out.print(k[t]);
       }
    }

}


Huffuman 나무
사실 이 문 제 는 어 려 운 점 을 어떻게 저장 하 는 지 첫 번 째 내림차 순 으로 정렬 하고 두 번 째 로 가 며 다른 새 배열 의 두 번 째 Arrays. sort (a) 에 저장 하 는 것 같 습 니 다.오름차 순, Arrays. copy OfRange (T [] original, int from, int to) 로 새로운 배열 을 만 드 는 것 을 캡 처 하여 순환 합 니 다.
import java.util.Arrays;
import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int a[]=new int [n];
		for(int i=0;i<n;i++) {
			a[i]=in.nextInt();
		}
		int i=0;
		int cost=0,tmp=0;
		while(i+1<a.length) {
			Arrays.sort(a);
			tmp=a[i]+a[i+1];
			a[i+1]=tmp;//    i+1  
			cost=cost+tmp;
			//   i   
			a=Arrays.copyOfRange(a, i+1, a.length);
		}
		System.out.println(cost);
	}
}

세 번 째 는 Array List 로 합 니 다. add, remove.
public class Main {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		ArrayList a=new ArrayList();
		for(int i=0;i<n;i++)
			a.add(in.nextInt());
		while(a.size()>=2) {
			f(a);
		}
		System.out.println(cost);
	}
	
	static int cost=0;
	static ArrayList f(ArrayList a) {
		//Collections      ,sort        ,    List       
		Collections.sort(a);
		Object m1=a.get(0);
		a.remove(m1);
		Object m2=a.get(0);
		a.remove(m2);
		cost=cost+(int)m1+(int)m2;
		a.add((int)m1+(int)m2);
		return a; 
	}
}


질문
어 려 운 점 이에 요. [
public class Main {

	/**
	 * @param args
	 */
	static int n;//       (       )
	static int[] w_place;// w_place[i]:    i      i  w_place[i] 
	static int[] b_place;// b_place[i]:    i      i  b_place[i] 
	static int[][] arr;
	static int result = 0;
	
	public static void main(String[] args) {

		// TODO Auto-generated method stub
		Scanner sn=new Scanner(System.in);

	    n=sn.nextInt();
		arr=new int[n][n];
		w_place = new int[n];
		b_place = new int[n];

		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				arr[i][j]=sn.nextInt();
			}
		}
		backdate(0);//     
		 
		System.out.println(result);

	}
	private static void backdate(int i){
		if(i> n-1){
			result++;
			return;
		}
		int w;//   i   
		for(w=0;w<n;w++){
			if(checkWhite(i, w)){

				w_place[i] = w;
				
				arr[i][w]=0;//             
				int b;
				for(b=0;b<n;b++){
					if(checkBlack(i, b)){
						b_place[i] = b;

						arr[i][b]=0;
						backdate(i+1);//      
						arr[i][b]=1;//                 ,     ,    
					}
				}
				arr[i][w]=1;
					
			}
		}
	}
	private static boolean checkWhite(int i, int j) {
		if (arr[i][j] == 0) {
			return false;
		}
 
		for (int k = 0; k < i; k++) {
			if (j == w_place[k] || Math.abs(i - k) == Math.abs(j - w_place[k])) {
				return false;
			}
		}
		return true;
	}
 
	private static boolean checkBlack(int i, int j) {
		if (arr[i][j] == 0) {
			return false;
		}
 
		for (int k = 0; k < i; k++) {
			if (j == b_place[k] || Math.abs(i - k) == Math.abs(j - b_place[k])) {
				return false;
			}
		}
		return true;
	}


}

시보 조수
import java.util.Scanner;

public class Main {

	/**
	 *     switch    
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sn=new Scanner(System.in);
		int h=sn.nextInt();
		int m=sn.nextInt();

		int count1,count2,count3;
		StringBuilder str=new StringBuilder();
		String[] s={"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"};
		String[] s1={"twenty","thirty","forty","fifty"};

		if(h<=20){
			str.append(s[h]);
		}
		else {
			count1=h-20;
			str.append(s[20]);
			str.append(" ");
			str.append(s[count1]);
		}
		str.append(" ");
		if(m==0){
			str.append("o'clock");
		}
		else {
			if(m<=20){
				str.append(s[m]);
			}
			else {
				//    
				count2=m/10-2;
				if(m%10==0){
					str.append(s1[count2]);
				}
				else {
					count3=m%10;
					str.append(s1[count2]);
					str.append(" ");
					str.append(s[count3]);			
				}
			}
		}
		System.out.println(str);
	}
}


회 형 취 수
우 리 는 두 개의 원 을 읽 는 방법 이 같다 는 것 을 알 수 있다. (그러나 다음 순환 의 줄 수 와 열 수 는 모두 이전 순환 보다 2 가 적다) 그래서 우 리 는 순환 을 통 해 이런 취 법 을 실현 할 수 있다. 순환 은 종료 조건 이 필요 하 다. 우 리 는 꺼 낸 개수 가 행렬 의 총수 와 같 으 면 순환 에서 벗 어 날 수 있다 는 것 을 생각 하기 어렵 지 않다.
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {  
        Scanner sc = new Scanner(System.in); 
        int m = sc.nextInt(); 
        int n = sc.nextInt(); 
        int[][] a = new int[m][n]; 
        for (int i = 0; i < m; i++) { 
            for (int j = 0; j < n; j++) { 
                a[i][j] = sc.nextInt(); 
   
            } 
   
        } 
        int tot = 0, x = -1, y = 0; 
        while (tot < m * n) { 
            while (x + 1 < m && a[x + 1][y] != -1) { 
                System.out.print(a[++x][y]+" "); 
                a[x][y] = -1; 
                ++tot; 
            } 
            while (y + 1 < n && a[x][y + 1] != -1) { 
                System.out.print(a[x][++y]+" "); 
                a[x][y] = -1; 
                ++tot; 
            } 
            while (x - 1 >= 0 && a[x - 1][y] != -1) { 
                System.out.print(a[--x][y]+" "); 
                a[x][y] = -1; 
                ++tot; 
            } 
   
            while (y - 1 >= 0 && a[x][y - 1] != -1) { 
                System.out.print(a[x][--y]+" "); 
                a[x][y] = -1; 
                ++tot; 
            } 
        } 
    } 

거북이 토끼 달리기 예측
누적 단위 속도 계산 거리
public class Main {
	
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		//    
		int v1 = sc.nextInt();
		int v2 = sc.nextInt();
		int t = sc.nextInt();
		int s = sc.nextInt();
		int l = sc.nextInt();
		
		int s1=0,s2=0;//      \         
		int time = 0;
		while(s1 < l && s2 < l ){
			if(s1 - s2 >= t){//    
				for(int i=0;i<s;i++){
					s2 += v2;
					time++;
					if(s2 == l)//      
						break;
				}
			}else{//     
				s1 += v1;
				s2 += v2;
				time++;
			}
		}
		if(s1 == l && s2 < l)
			System.out.println("R");
		else if(s1 < l && s2 == l)
			System.out.println("T");
		else
			System.out.println("D");
		System.out.println(time);

칩 문제
다른 칩 이 하나의 칩 에 대한 판단 결과 가 1 의 개수 가 0 의 개수 보다 많 으 면//이것 이 좋 은 칩 이 라 고 판단 할 수 있다. 왜 일 까?이 좋 은 것 은 1 과 0 을 표시 할 확률 이 모두 50% 입 니 다.
FJ 문자열
첫 번 째 방법 은 재 귀 와 동적 계획 을 사용한다.
public class FJString {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt() ;
        FJString fj=new FJString();
        String v=fj.avc(n);
        System.out.println(v);
    }
 
    public String avc(int n) {
        if (n == 1) return "A";
        else {
            char c = (char) (n + 64);
            return avc(n - 1) + c + avc(n - 1);
        }
    }
}


Sine 의 춤
An=sin(1–sin(2+sin(3–sin(4+…sin(n))…)   Sn=(…(A1+n)A2+n-1)A3+…+2)An+1
먼저 바깥쪽 의 Sn 를 분석 하려 면 큰 것 부터 작은 것 까지 재 귀 해 야 합 니 다. 즉 n, n - 1, n - 2... 1. index 로 현재 재 귀 하 는 위 치 를 기록 해 야 합 니 다. 그러면 식 은 "("+ printfsN (n, index - 1) + "+ printfan (index, 1,") + "+"+ "(n - index + 1) 입 니 다.    내부 식 에 대해 An 은 작은 것 에서 큰 것 으로 돌아 가 야 합 니 다. 즉, 1, 2, 3... n, index 로 돌아 가 는 위 치 를 기록 하고 str 로 이미 받 은 문자열 을 기록 해 야 합 니 다. 그러면 공식 은 str + "sin ("+ index + operation + printfan (n, index + 1, str) + ") 입 니 다.
public static void main(String[] args) {
        Scanner sca = new Scanner(System.in);
        int n = sca.nextInt();
        System.out.println(printfSN(n, n));
    }

    private static String printfSN(int n, int index) {
        if (index == 1) {
            return printfAn(1, 1, "")+"+"+n;
        }
        return "("+printfSN(n,index-1)+")"+printfAn(index,1,"")+"+"+(n - index + 1);
    }

    private static String printfAn (int n, int index, String str) {
        if (n == index) {
            return "sin("+index+")";
        }
        String operation = "-";
        if (index % 2 == 0) {
            operation = "+";
        }
        return str+"sin("+index+operation+printfAn(n, index + 1, str)+")";
    }


수의 독법
https://blog.csdn.net/qq_27859693/article/details/87548462
완벽 한 대가
문자열 의 첫 번 째 문자 에 대해 문자열 의 마지막 문자 부터 일치 합 니 다. 첫 번 째 일치 하 는 위 치 를 찾 으 면 마지막 두 번 째 위치 로 바 꾸 고 이 변환 에 필요 한 횟수 를 기록 합 니 다. 일치 하 는 위 치 를 찾 지 못 하면 이 문 자 는 가장 중간 에 있 는 문자 일 수 있 습 니 다. 불 변수 로 이 문 자 를 기록 해 야 하 는 지 여 부 를 기록 합 니 다.사이 의 문자 가 존재 하 는 지 여부 입 니 다. 제목 의 관건 은 중간 문자 일 수 있 습 니 다. 중간 위치 로 바 꿀 필요 가 없 는 경우 입 니 다. 이 문 자 를 중간 으로 바 꾸 면 이후 의 문 자 는 매번 이 중간 문자 의 위 치 를 바 꿉 니 다. 이 중간 문자 의 왼쪽 은 이미 바 뀌 었 습 니 다. 중간 문자 의 오른쪽 만 바 꾸 면 됩 니 다.중간 문 자 를 마지막 에 바 꿀 수 있 도록 (아래 코드 는 마지막 에 실제 적 으로 바 꾸 지 않 고 필요 한 횟수 만 통계 했다) 마지막 으로 오른쪽 문 자 를 답문 처리 하면 된다. 처리 하 는 과정 에서 중간 문자 가 다시 나타 날 수 있다 면 이런 상황 은 불가능 하 다.
https://blog.csdn.net/qq_40605470/article/details/79268979
직사각형 면적 교차
직사각형 오른쪽 아래 좌표 2 개 중 가장 작은 x (minx) 와 가장 작은 y (miny) - P2 의 점 좌 표를 찾 아 사각형 왼쪽 상단 좌표 2 개 중 가장 큰 x (maxx) 와 가장 큰 y (maxy) - P3 의 점 좌 표를 찾 은 다음 에 나 온 셈 이다.
행렬 곱셈
세 가지 가능성 이 있다.
https://blog.csdn.net/wzt529/article/details/59539832
분해 질 인수
public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		sc.close();
		
		for(int i = a;i <= b;i++) {
			factor(i);
		}
	}

	public static void factor(int num) {
		int copy = num;
		StringBuilder sb = new StringBuilder();
		int i = 2;//        
		while(num != 1) {
			if(num % i == 0) {
				sb.append(i).append("*");
				num /= i;
			}else {
				i++;
			}
		}
		String res = sb.toString();
		System.out.println(copy + "=" + res.substring(0, res.length() - 1)); //      * 
	}

문자열 비교
//     
		if(str1.length()==str2.length()){
			if(str1.equals(str2)){
				System.out.print(2);
			}
			else {
				//         
				if(str1.toLowerCase().equals(str2.toLowerCase())){
					System.out.print(3);
				}
				else {
					System.out.print(4);
				}
			}
		}
		else {
			System.out.print(1);
		}

} 욕심 알고리즘 템 플 릿 튜 토리 얼] (https://www.cnblogs.com/xiaozhang2014/p/7783795.html)

좋은 웹페이지 즐겨찾기