[99클럽 코테 스터디 17일차 TIL] 백준 25497 기술 연계마스터 임스

말하는 감자·2024년 11월 13일
0
post-thumbnail

99클럽 코테 스터디 17일차 TIL

💙 JAVA 비기너

📌 오늘의 학습 키워드

  • ???

📌 공부한 내용

📍 오늘의 문제

📍 작성 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) throws IOException {
		
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	    
	    br.readLine();
	    String[] skillArr = br.readLine().split("");
	    
	    br.close();
	    
	    int answer = 0, lCnt = 0, sCnt = 0;
	    boolean skillFail = false;
	    
	    for(String skill : skillArr) {
	    	switch(skill) {
	    	case "L": lCnt++; break;
	    	case "S": sCnt++; break;
	    	case "R":
	    		if(lCnt != 0) { answer++; lCnt--;  } else skillFail = true;
	    		break;
	    	case "K":
	    		if(sCnt != 0) { answer++; sCnt--; } else skillFail = true;
	    		break;
	    	default :
	    		answer++;
	    	}
	    	
	    	if(skillFail) break;
	    }
	    
	    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	    
	    bw.write(String.valueOf(answer));

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

📌 오늘의 회고

기술목록인 skillArr를 한글자씩 돌려서 스킬이 동작한 횟수를 계산하는 로직이다.

사실 문제 자체는 금방 풀었으나 더 나은 코드를 위해 여러번 도전했는데

어째서인지 줄어드는 코드 길이에 비해 메모리와 시간은 점점 늘어났다.🥲

그나마 마지막에 총 기술 사용 횟수 N을 기존에는 int N = Integer.parseInt(br.readLine());로 받았으나 차피 사용하지도 않을 거 메모리 할당 시키지 말자하고 br.readLine()만 한 게 가장 좋게 나온 듯하여 마지막 코드를 기록한다.

profile
나는 말하는 감자다

0개의 댓글