달달한 스토리

728x90
반응형

출처 핀터레스트

 

허.. 점점 어려워지고 있다.

 

난이도가 급 상승한 느낌이다... 한 문제를 몇 시간 동안 쳐다보고 있는지 모를 정도였다.

 

내 부족한 수학 실력에 대해서 깨우칠 수 있었던 시간이었던 것 같다.

 

이거.. 수학도 같이 공부해두면 좋을 것 같다.

 

1316

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Test1316 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int cnt = Integer.parseInt(br.readLine());

        int count = 0;

        //그룹단어이냐 아니냐의 불리언
        boolean isGroup;

        while (br.ready()) {
            String str = br.readLine();
            isGroup = true;
            ArrayList<Character> list = new ArrayList<>();

            for(int i = 0; i < str.length(); i++) {
                //배열에 포함되어 있아도 되는데, 다음 문자로 바뀐 다음에 한 번 더 나오면 안됨

                //포함안되어 있으면 배열에 넣어준다.
                if(!contains(list, str.charAt(i))) {
                    list.add(str.charAt(i));
                } else {
                    //포함이 되어있을때,
                    //전에 문자와 다를때 (이건 같은 문자가 한번 더 추가 되었다는 뜻)
                    //그렇다면 이건 그룹 단어가 아니다.
                    //첫 실행을 하면 Array 예외가 생기므로, 처음엔 체크하지 않는다.
                    if(i != 0) {
                        if(str.charAt(i) != str.charAt(i - 1)) isGroup = false;
                    }
                }
            }
            //그룹 단어라면 카운트를 하나 추가한다.
            if(isGroup) {
                count++;
            }
        }

        System.out.print(count);
    }

    //char배열안에 char가 속해있는지 확인하는 메서드
    private static boolean contains(ArrayList<Character> chs, char ch) {
        int length = chs.size();

        for(int i = 0; i < length; i++) {
            if(chs.get(i) == ch) {
                return true;
            }
        }
        return false;
    }
}

이 문제 같은 경우에 시간이 정말 오래 걸렸지만,

 

최대한 답을 보지 않고 하기 위해 애를 많이 썼다.

 

효율적인 방법은 아닌 것 같지만, 스스로 풀려고 노력했다는 것에 의의를 두었다.

 

1712

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Test1712 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int A = Integer.parseInt(st.nextToken()); //고정비용
        int B = Integer.parseInt(st.nextToken()); //재료비, 인건비
        int C = Integer.parseInt(st.nextToken()); //노트북 가격

        if(C <= B) {
            System.out.print("-1");
        } else {
            System.out.print((A / (C - B)) + 1);
        }
    }
}

 

이 문제도 솔직히 너무 어려웠다.

 

이 코드는 답을 본 코드이지만,

 

이 간단해 보이는 식을 풀려고, 이것 저것 많이 시도해 보았다.

 

그러면서 답을 보고 좌절했다.. 생각보다 간다한 수학식으로 풀었던 것이다.

 

최대한 많은 문제를 접하고, 여러 유형을 풀어서 패턴을 파악하는 연습을 주로 해야겠다.

 

배웠던 수학들이 전부 기억나지 않아 나 스스로가 원망스러워진 문제였다,...

 

 

2292

 

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

public class Test2292 {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        int count = 1; // 겹 수(최소 루트)
        int range = 2;	// 범위 (최솟값 기준)

        if (N == 1) {
            System.out.print(1);
        }
        else {
            while (range <= N) {	// 범위가 N보다 커지기 직전까지 반복
                range = range + (6 * count);
                count++;
            }
            System.out.print(count);
        }
    }
}

 

이 문제도 위에 문제처럼 간단해 보이지만, 나한테는 어렵고 오래 걸렸던 문제이다..

 

결국 답을 보고 푼 문제이지만,

 

패턴을 파악하고, 식으로 풀어내는 게 아직 많이 부족한 것 같다...

 

 

25083

 

public class Test25083 {
    public static void main(String[] args) {
        print("         ,r'\"7");
        print("r`-_   ,'  ,/");
        print(" \\. \". L_r'");
        print("   `~\\/");
        print("      |");
        print("      |");
    }

    private static void print(String str) {
        System.out.println(str);
    }
}

 

이건 첫 번째 과제에서 하나 추가가 되었길래 풀었다..

 

이 문제가 오늘 나에게 최적...

 

ㅠㅠ 코딩 테스트를 더 열심히 할 동기부여도 얻었지만,

 

좌절감이 점점 심해지고 있다...

 

문제 난이도... 잘할 날이 왔으면 좋겠다..

 

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading