언어/[Java]

[Java] 백준 2675, 1431(작성 중), hasNext()

dayeonsheep 2023. 5. 18. 11:16
  • 문자열 반복

어캄... 중간고사 기간 때 스터디 쉬었떠니 감을 다 잃음...

이중 for문도 일단 쓰고 한참을 고민하다 이해함

나의 시행착오1...

멍청하게 num으로 저렇게 더해버렸음 

그리고 print를 어디다가 써야할지 고민함...하

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {	
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();
		
		for (int i=0; i<T; i++) {
			int R = sc.nextInt();
			String S = sc.next(); //nextLine()으로 입력받으면 공백까지 처리함->next로 입력받기
			
			for(int j=0; j<S.length(); j++) {
				for(int k=0; k<R; k++) {
					System.out.print(S.charAt(j));
				}
			}
			System.out.println();
		}
	}
}

 

그래서 이중 for문 설명을 덧붙이자면

chatAt(0)-> 첫 번째 문자 * R만큼

cahrAt(1)-> 두 번째 문자* R 

... ~ 해서 최종적으로 3 ABC를 입력했다면 AAABBBCCC가 입력되도록

 

 

[JAVA] 문자열(String) 관련 메소드 정리 + 형변환

문자열 생성 (2가지 방법 및 차이) String str1 = "Test"; String str2 = "Test"; String str3 = new String("Test"); String str4 = new String("Test"); System.out.println(str1 == str2); // true System.out.println(str1 == str3); // false System.out.pri

chb2005.tistory.com

완전 정리왕^^ 분의 글 참고하시길

 

  • 1431번 시리얼 번호, 문자열 길이 비교

시행착오1

처음에 구성을 이렇게 해볼까하다가... 문자 길이별 오름차순을 찾아봄

나는 실버4인데 실버3문제가 당연히 어려울 수밖에 없는. 것 아닐까? 라는 생각을 잠깐 해줌

 

Arrays.sort(str, Comparator.comparing(String::length));

이런 코드를 쓰면되지 않을까? 하고 문자열을 받아서 리스트로 저장하면 될까 하는 시행착오2를 겪음

그리고 Comparator를 알게 됨

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Study2 {
	public static void main (String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		for(int i=0; i<N; i++) {
			String S = sc.next();
			List<String> list = Arrays.asList(S);
		}
	}
}

우선 시행착오2를 테스트해보려고 문자열 리스트만 출력해보도록 코드를 짜봤더니

아아... import에서 오류가 남...  import java.Arrays나 java.util.List 중에 하나만 지워도 오류가 없어지는데

그러면 저 List<String>을 쓸수가 없음

 

그래서 문자열을 저렇게 String으로 받고 밑에서 List로 받는게 아니라

첨부터 s[]=로 받는걸로 고침

 


  • hasNext

https://planet-0104.tistory.com/4

 

Java Scanner 클래스의 hasNext 함수란? (feat. 백준 10951번)

알고리즘 공부를 시작하기 위해 일단 간단한 입출력부터 되짚어보고 있는데, 솔직히 내가 자바를 써온 시간이 있으니 입출력문제에서 난관을 겪을 거라곤 생각을 못했다. 그리고 이런 문장으로

planet-0104.tistory.com

숫자 입력받아서 더하는 문제에서 오류가 났는데

"스캐너 객체로 데이터가 들어왔는지 여부를 반환하는 함수." 라는 말은 이론이고

암튼 언제 입력이 끝날지 모르니까 이걸 써줘야되는 거더라

 

정수만 받는거라 hasNextInt()를 써줘도 되는데

나는 hasNext()를 받아서 처리했다

 

  • BufferedReader

이거에 대해 공부를 해봐야겠다는 생각이 매우 든다

코드 참고를 할 때마다 이걸 활용해서 푸는 경우가 넘 많음 

갈 길이 멀다