๐ŸŽ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/์•Œ๊ณ ๋ฆฌ์ฆ˜

3. ๋ฌธ์žฅ ์† ๋‹จ์–ด ์ฐพ๊ธฐ - split(), indexOf(), subString()

jhj.sharon 2023. 5. 3. 21:23
๋ฐ˜์‘ํ˜•

1. ๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ

  • ํ•œ๊ฐœ์˜ ์˜์–ด ๋ฌธ์žฅ์ด ์ฃผ์–ด์ง€๋ฉด ๊ทธ ๋ฌธ์žฅ ์ค‘ ๊ฐ€์žฅ ๊ธด ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋ฌธ์žฅ ์† ๊ฐ ๋‹จ์–ด๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.
  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธด ๋‹จ์–ด๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์ผ ๊ฒฝ์šฐ ๋ฌธ์žฅ์—์„œ ๊ฐ€์žฅ ์•ž์ชฝ์ธ ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

2. ๋ฌธ์ œํ’€์ด์— ์‚ฌ์šฉ๋œ ๋ฉ”์„œ๋“œ: ๋ฌธ์ž์—ด-> ๋‹จ์–ด ๋ฐฐ์—ด

  • ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด str์„ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋‹จ์–ด ๋ฐฐ์—ด๋กœ ์ €์žฅํ•˜๊ธฐ -> String [] s = str.split(" "); 
  • ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฌธ์ž์—ด ๋ฐฐ์—ด s๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ๋‹จ์–ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ๋‹ค -> int len=x.length();
  • ๋ฐฐ์—ด์„ ๋Œ๋ฉด์„œ ์ตœ๋Œ€๊ฐ’์„ ๋ฝ‘๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•œ๋‹ค(์ตœ๋Œ€๊ฐ’ ๋ฎ์–ด์“ฐ๊ธฐ) -> if(len>max)  max=len; 
  • ์ตœ๋Œ€๊ฐ’์„ answer์— ๋‹ด๋Š”๋‹ค

 

 

2. ๋ฌธ์ œํ’€์ด(2) : ๋ฌธ์ž์—ด๋กœ๋งŒ ์ฐพ๊ธฐ 

  • indexOf๋กœ ๋ฌธ์ž์—ด์„ ๋Œ๋ฉด์„œ ๋นˆ์นธ์„ ์ฐพ๋Š”๋‹ค. indexOf๋Š” ์ฐพ๋Š” ๋ฌธ์ž์—ด์ด ์žˆ์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ๋”์ด์ƒ ๊ณต๋ฐฑ์ด ์—†์„ ๋•Œ๊ฐ€์ง€ ๋ฌธ์ž์—ด์„ ์ญ‰~ ์ฐพ์•„๋ณด๊ฒŒ ๋œ๋‹ค.
  • ๋”์ด์ƒ์˜ ๊ณต๋ฐฑ์ด ์—†์–ด -1์ด ๋ฐ˜ํ™˜๋˜๋ฉด while๋ฌธ์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฉˆ์ถ˜๋‹ค.
  • subString(0, pos) -> subString์€ ๋ฌธ์ž์—ด์„ ์ž˜๋ผ์ฃผ๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ๋‘๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ -1 ์ธ๋ฑ์Šค๊นŒ์ง€ ์ž˜๋ผ๋‚ธ๋‹ค.
  • subString(pos+1) -> pos+1 ๋ถ€ํ„ฐ ๋ฌธ์ž์—ด ๋๊นŒ์ง€ ์ž˜๋ผ๋‚ด๊ธฐ. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต๋ฌธ๋‚ด String tmp = str.substring(0, pos)๊ฐ€ ๋‹ค์‹œ ์ •์ƒ ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
  • ๋‹จ! (pos=str.indexOf(" ")) !=-1 ์กฐ๊ฑด์— ์˜ํ•ด ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋Š” ๋’ค์— ๊ณต๋ฐฑ์ด ์—†์œผ๋ฏ€๋กœ ๋‹จ์–ด ๊ธธ์ด์— ์ƒ๊ด€ ์—†์ด false๊ฐ€ ๋˜์–ด while๋ฌธ์ด ์ข…๋ฃŒ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ return์ „์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ง์ ‘ ๋น„๊ตํ•ด์ค€๋‹ค.  -> if(str.length()>max) answer=str;

 

 

 

3. ํ’€์ด

import java.util.Scanner;

public class Main {
	
	public String solution(String str) {
		String answer ="";
		
		int max = Integer.MIN_VALUE;// ์ •์ˆ˜ ์ตœ์†Œ๊ฐ’
		String [] s = str.split(" "); // ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž˜๋ผ์„œ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์— ์ €์žฅ
		for(String x : s) {
			int len=x.length();
			if(len>max) {
				max=len;
				answer=x;
			}
			
		}
		
		return answer;
	}

	public static void main(String[] args) {

		Main T = new Main();
		
		Scanner kb = new Scanner(System.in);
		String str = kb.nextLine();
		System.out.println(T.solution(str));

	}

}

 

๋ฐ˜์‘ํ˜•