다희의 코딩 성장일기

[정올 Begginer_Coder - 문자열] 2514.문자열 찾기_자바JAVA 본문

Algorithm/정올

[정올 Begginer_Coder - 문자열] 2514.문자열 찾기_자바JAVA

ilmiodiario 2020. 12. 14. 11:58

 

[ 문제 ]  정올 2514.문자열 찾기

 

문제 링크jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1775&sca=2050

 

JUNGOL

 

www.jungol.co.kr

 

 


 

[ 입출력 ]

 


 

[ 풀이 ]

 

< 접근 방법 및 풀이 >

  • String으로 입력 받고, StringBuilder를 사용해 3글자씩 조합해보기. 
  •  해당 3글자가 KOI 이면 KOI_cnt ++, IOI 이면 IOI_cnt ++
  • 아래 JAVA 코드 참고

< 주의할 점 >

  • 첫번째 for문 범위 설정하기! 입력받은 String의 길이 끝까지 탐색하는 것이 아니라 String의 length - 2까지 돈다.
  •  ex ) 
 K  O I I O

    0       1      2       3      4      5 

 

length = 6이며, 6-2 = 4보다 작을 때 까지만 반복 돈다.  i = 0 ~ 3까지

=> i 부터 i+2까지 세글자씩 조합하기 때문에.

012 = KOI

123 = OIO

234 = IOI

345 = OIO

 


 

JAVA코드
더보기
package 문자열;

import java.util.Scanner;

public class 문자열찾기_2514 {

	public static void main(String[] args) {
		Scanner sc = new Scanner (System.in);
		String s = sc.next();
		StringBuilder sb;
		int koi_cnt = 0; // KOI 카운트 변수
		int ioi_cnt = 0; // IOI 카운트 변수
		
		for (int i = 0; i < s.length()-2; i++) {
			sb = new StringBuilder(); //스트링빌더 생성
			for (int j = i; j < i+3; j++) {
				sb.append(s.charAt(j)); // 현재 i번째에서 3자리씩 더함
			}
			if(sb.toString().equals("KOI")) koi_cnt ++; //만들어진 글자가 KOI이면  카운트+1
			if(sb.toString().equals("IOI")) ioi_cnt ++; // IOI이면 카운트 +1
		}
		
		System.out.println(koi_cnt);
		System.out.println(ioi_cnt);
	}
}

 

REVIEW

 

올해 뭣도 모르고 카카오 코테 봤었는데 카카오는 문자열 문제가 많이 나온다고 들었었다.

그때 1번문제 풀고 다 풀었지만 시간이 엄청 오래 걸렸고 진짜 대멘붕에 빠졌었다.

문자열 기초 잘 다져야겠다는 생각이 들었다.

문자열 많이 풀어보자!

Comments