반응형

1. 문제 번호 10871번


 

 

 

2. 문제 풀이 

 - StringTokenizer이 반복적으로 사용이 가능하구만..? 

 - StringBuilder 

 

 

 

나의 문제풀이 방식 및 순서

 -  怎么越做题,越简单呢?

 

 


3. 소스 인증

 

 

import java.util.*;
import java.lang.*;
import java.io.*;

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 = new StringTokenizer(br.readLine());

        int size    = Integer.parseInt(st.nextToken());
        int minimum = Integer.parseInt(st.nextToken());

        int [] numList = new int[size];
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i<numList.length; i++){
            numList[i] = Integer.parseInt(st.nextToken());
        }

        for(int i = 0; i<numList.length; i++){
            if(numList[i]<minimum){
                bw.write(numList[i] + " ");
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }   
        
}

 

 

 

import java.util.*;
import java.lang.*;
import java.io.*;

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 = new StringTokenizer(br.readLine());
        StringBuilder sb = new StringBuilder();

        int size    = Integer.parseInt(st.nextToken());
        int minimum = Integer.parseInt(st.nextToken());
        
        st = new StringTokenizer(br.readLine()," "); //st = new StringTokenizer(br.readLine()); 와 동일하다. 

        for(int i = 0; i < size; i++){
            int el = Integer.parseInt(st.nextToken());
            if(el < minimum){
                sb.append(el).append(" ");
            }
        }
        bw.write(sb.toString()); // StringBuilder를 문자열로 변환하여 출력
        bw.newLine(); // 개행 문자 추가
        bw.flush();
        bw.close();
        br.close();
    }   
        
}

 

 

 


4. 추가 개념

 

StringBuilder
(=StringBuffer 멀티스레드환경) 

자바에서 String 객체는 변경 불가능하다. 
하나의 문자열을 다른 문자열과 연결하면 새 문자열이 생성되고, 이전 문자열은 가비지 컬렉터로 들어간다.
자바에서 제공하는 싱글스레드 환경에서의 가변적문자열 처리

 

 

 

728x90
반응형
반응형

1. 문제 번호 10807번


 

2. 문제 풀이 

 - 계속해서 에러가 뜸..

    - > return에서 문제가 됐다고 추정

 - 순차탐색은 반복문이 더 효율적 (재귀호출 보다)

    - 이진탐색 = 정렬이 되어    있을때 + 중복 여부도 함께 고려할 것 

    - 순차탐색 = 정렬이 안되어 있을때 + 중복 여부도 함께 고려할 것

 

나의 문제풀이 방식 및 순서

 - 


3. 소스 인증

                                /*************
                                사용하지마세요.
                                *************/

import java.util.*;
import java.lang.*;
import java.io.*;

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));

        int size = Integer.parseInt(br.readLine());
        int [] numList = new int[size];

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        for(int i = 0; i<size; i++){
            numList[i] = Integer.parseInt(st.nextToken());
        }
        int target = Integer.parseInt(br.readLine());

        //순차탐색
        int numListFindIndex = findValue(numList, 0, size, target);
        bw.write(String.valueOf(numListFindIndex));
        
        bw.flush();
    	bw.close();
    }

    // 순차탐색 정렬이 안되어있을때 사용 + 중복 불허
    public static int findValue(int [] numList, int begin, int end, int target){
        for(int i = begin; i<end; i++){
            if(numList[i]==target){
                return i;
            }
        }
        return 0;
    }
    
    // 이진탐색 정렬이 되어있을때 + 중복 허가
    // public static int findValue(int [] numList,int begin,int end,int target){
    //     if(begin>end){
    //         return -1;            
    //     } else {
    //         int middle = (begin + end)/2;
    //         if (numList[middle] ==target)
    //             return middle;
    //         int index = findValue(numList, begin, middle, target);
    //         if (index != -1)
    //             return index;
    //         else 
    //             return findValue(numList, middle+1, end, target);
            
    //     }
    // }
}

 

import java.util.*;
import java.lang.*;
import java.io.*;

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));

        int size = Integer.parseInt(br.readLine());
        int[] numList = new int[size];

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        for (int i = 0; i < numList.length; i++) {
            numList[i] = Integer.parseInt(st.nextToken());
        }
        int target = Integer.parseInt(br.readLine());

        //순차탐색_재귀호출
        int count = countValue(numList, 0, size, target);
        bw.write(String.valueOf(count) + "\n");
        
        bw.flush();
        bw.close();
        br.close();
    }

//못찾을때 0으로 해버리면 index와 헷갈림
    public static int countValue(int [] numList, int begin, int end, int target){
        int count = 0;
        for(int i = begin; i < end; i++){
            if(numList[i] == target){
                count++; // 목표값을 찾으면 카운터 증가
            }
        }
        return count; // 찾은 목표값의 개수 반환
    }
}

4. 추가 개념

728x90
반응형
반응형

1. 문제 번호 10951번


 

2. 문제 풀이 

 - while ( (str=br.readLine())!=null ){ }

 

나의 문제풀이 방식 및 순서

 - 


3. 소스 인증

import java.util.*;
import java.lang.*;
import java.io.*;

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;
        String str = null;
        List <Integer> numList = new ArrayList<>();

        while ( (str=br.readLine())!=null ){
            st = new StringTokenizer(str," ");
            int first  = Integer.parseInt(st.nextToken());
            int second = Integer.parseInt(st.nextToken());
            numList.add(first+second);
        }
        for (int i : numList){
            bw.write(String.valueOf(i));
            bw.write("\n");
        }
        bw.flush();
    	bw.close();
    }
}

4. 추가 개념

728x90
반응형
반응형

1. 문제 번호 10952번


 

2. 문제 풀이 

 - 

 

나의 문제풀이 방식 및 순서

 - 계속해서 에러가 발생해서 그냥 다른사람 코드 복붙함..


3. 소스 인증

import java.util.*;
import java.lang.*;
import java.io.*;

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 tokenizer;

		String[] stringList = new String[5];

		while(true) {
			StringTokenizer str = new StringTokenizer(br.readLine());
			int frist = Integer.valueOf(str.nextToken());
			int second = Integer.valueOf(str.nextToken());
			int sum = frist + second;

			if(sum<=0) break;
			bw.write(sum + "\n");
		}
	
	bw.flush();   //남아있는 데이터를 모두 출력시킴
	bw.close();   //스트림을 닫음
	}
}

4. 추가 개념

728x90
반응형

'알고리즘(BOJ) 문제풀이' 카테고리의 다른 글

[BOJ/백준] 1차원 배열_10807번  (0) 2024.05.09
[BOJ/백준] 반복문_10951번  (0) 2024.05.09
[BOJ/백준] 반복문_2439번  (0) 2024.05.08
[BOJ/백준] 반복문_2438번  (0) 2024.05.08
[BOJ/백준] 반복문_11022번  (0) 2024.05.08
반응형

1. 문제 번호 2439번


 

2. 문제 풀이 

 - 

나의 문제풀이 방식 및 순서

 - 다중 반복문이 좋은 선택인지는 잘 모르겠다.


3. 소스 인증

import java.util.*;
import java.lang.*;
import java.io.*;

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 = new StringTokenizer(br.readLine());
        
        int cnt = Integer.parseInt(st.nextToken());
        
        for(int i = 1; i <= cnt; i++){
            // 공백 출력
            for(int j = cnt; j > i; j--){
                bw.write(" ");    
            }
            // 별표 출력
            for(int k = 1; k <= i; k++){
                bw.write("*");
            }
            // 줄 바꿈
            bw.write("\n");
        }
        bw.flush();   //남아있는 데이터를 모두 출력시킴
        bw.close();   //스트림을 닫음
    }
}

4. 추가 개념

728x90
반응형

'알고리즘(BOJ) 문제풀이' 카테고리의 다른 글

[BOJ/백준] 반복문_10951번  (0) 2024.05.09
[BOJ/백준] 반복문_10952번  (0) 2024.05.08
[BOJ/백준] 반복문_2438번  (0) 2024.05.08
[BOJ/백준] 반복문_11022번  (0) 2024.05.08
[BOJ/백준] 반복문_11021번  (0) 2024.05.08
반응형

1. 문제 번호 2438번


 

2. 문제 풀이 

 - 정성 한스푼 추가

 

나의 문제풀이 방식 및 순서


3. 소스 인증

import java.util.*;
import java.lang.*;
import java.io.*;

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 = new StringTokenizer(br.readLine());
        
        int cnt = Integer.parseInt(st.nextToken());
        
        for(int i = 1; i<=cnt; i++){
            for(int j=1; j<=i; j++){
                bw.write("*");    
            }
            bw.write("\n");
        }
        bw.flush();   //남아있는 데이터를 모두 출력시킴
        bw.close();   //스트림을 닫음
    }
}

4. 추가 개념

728x90
반응형

'알고리즘(BOJ) 문제풀이' 카테고리의 다른 글

[BOJ/백준] 반복문_10952번  (0) 2024.05.08
[BOJ/백준] 반복문_2439번  (0) 2024.05.08
[BOJ/백준] 반복문_11022번  (0) 2024.05.08
[BOJ/백준] 반복문_11021번  (0) 2024.05.08
[BOJ/백준] 반복문_15552번  (0) 2024.05.08
반응형

1. 문제 번호 11021번


 

2. 문제 풀이 

 - 정성 한스푼 추가

 

나의 문제풀이 방식 및 순서


3. 소스 인증

import java.util.*;
import java.lang.*;
import java.io.*;

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 = new StringTokenizer(br.readLine());
        StringTokenizer tokenizer;
        
        int size = Integer.parseInt(st.nextToken());
        String[] stringList = new String[size];
        
        for (int i = 0; i < size; i++) {
            stringList[i] = br.readLine();
            tokenizer = new StringTokenizer(stringList[i]);
            
            int first = Integer.parseInt(tokenizer.nextToken());
            int second = Integer.parseInt(tokenizer.nextToken());

            bw.write("Case #" + (i+1) + ": ");
            bw.write(first + " + " + second);
            bw.write(" = " + (first+second));
            bw.write("\n");
        }
        bw.flush();   //남아있는 데이터를 모두 출력시킴
        bw.close();   //스트림을 닫음
    }
}

4. 추가 개념

728x90
반응형

'알고리즘(BOJ) 문제풀이' 카테고리의 다른 글

[BOJ/백준] 반복문_2439번  (0) 2024.05.08
[BOJ/백준] 반복문_2438번  (0) 2024.05.08
[BOJ/백준] 반복문_11021번  (0) 2024.05.08
[BOJ/백준] 반복문_15552번  (0) 2024.05.08
[BOJ/백준] 반복문_25314  (0) 2024.05.08
반응형

1. 문제 번호 11021번


 

2. 문제 풀이 

 - BufferedWriter, BufferedWriter.write(), BufferedWriter.flush(), BufferedWriter.close()

 

나의 문제풀이 방식 및 순서


3. 소스 인증

import java.util.*;
import java.lang.*;
import java.io.*;

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 = new StringTokenizer(br.readLine());
        StringTokenizer tokenizer;
        
        int size = Integer.parseInt(st.nextToken());
        String[] stringList = new String[size];
        
        for (int i = 0; i < size; i++) {
            stringList[i] = br.readLine();
            tokenizer = new StringTokenizer(stringList[i]);
            
            int first = Integer.parseInt(tokenizer.nextToken());
            int second = Integer.parseInt(tokenizer.nextToken());
            
            bw.write("Case #" + (i+1) + ": " + (first + second) + "\n");   //버퍼에 있는 값 전부 출력
        }
        bw.flush();   //남아있는 데이터를 모두 출력시킴
        bw.close();   //스트림을 닫음
    }
}

4. 추가 개념

728x90
반응형

'알고리즘(BOJ) 문제풀이' 카테고리의 다른 글

[BOJ/백준] 반복문_2438번  (0) 2024.05.08
[BOJ/백준] 반복문_11022번  (0) 2024.05.08
[BOJ/백준] 반복문_15552번  (0) 2024.05.08
[BOJ/백준] 반복문_25314  (0) 2024.05.08
[BOJ/백준] 반복문_25304번  (0) 2024.05.08

+ Recent posts