첫 월단위 회고, 5월에는 많은 일들이 있었다.

 

Nexters 23기 신입 모집

23기 운영진으로 활동 중이고, 5월에는 신입 회원 모집이 진행되는 일정이었다.

5.5 ~ 5.14 신입 서류 제출기간

5.24 신입 서류 결과

5.25 신입 면접 안내

현재 신입 회원 면접 준비기간이고, 이번 주말 면접 진행될 예정이다.

 

정말 많은분들이 지원을 해주셨고, 10일이라는 짧은 시간동안 검토를 해야해서 밤을 새면서까지 꼼꼼히 보려고 했다.

정말 실력있는 분들이 많이 지원해주셨는데 한정적인 티오로 인해 불합격을 드려야한다는게 안타까웠다.

특히 이번기수는 비수도권 인재분들 대상으로 교통비 전액 지원이라는 후원을 임팩트 캠퍼스를 통해 받게되어 학생/직장인 뿐만 아니라 수도권/비수도권도 고려를 해야하는 어려움이 있었다.

 

퇴사

나는 백엔드 개발자로 취업해서 들어왔지만 정신을 차려보니 5개월동안 프론트엔드 개발'만' 하고있었다.

초기에는 백엔드 개발자도 프론트엔드 개발 경험이 어느정도 도움될것이고, 병행을 해도 괜찮겠다는 생각을 했었다.

현실은 백엔드 비중은 없고, 프론트엔드 비중이 90%이상을 차지하고 있고, 앞으로 1년은 이렇게 유지될 것으로 생각하니 막막하기만 했다.

신입이라는 중요한 시기에 백엔드 경험을 쌓아야하는데 지금 이러고 있어도 되는지 생각을 정말 많이했다.

그 과정에서 번아웃이 너무 크게 찾아왔고, 어떤 일을 하든 부정적인 생각만 가득하게 되었다.

 

단순 백엔드 개발만 하더라도 내가 경험하지 못한것들, 배워야할 것들이 너무 많은데 지금 프론트엔드를 하는건 너무 이르다는 생각이 들었고, 백엔드에 집중해야겠다는 생각을 했다.

그렇게 나는 퇴사를 결심하게 되었고, 회사에 통보를 한 상태로 이번달 중에 퇴사할 예정이다.

 

1일 1커밋

2021년 7월 26일부터 667일간 진행된 1일 1커밋이 종료되었다.

매일 알고리즘을 풀고 깃허브에 push하는 과정을 반복했지만 이번에 끊겼다.

 

앞에서 언급한 번아웃이 가장 큰 원인이 아니었나 싶다.

내 스스로가 휴식을 윈했고, 주말, 연휴 할것없이 쉬기만 했다.

무언가를 회피하려고 하니 이런 기본적인 것들도 생각나지 않게되었고, 잔디에 구멍이 뚫려버렸다.

처음에는 아무 생각없이 커밋 시간 조작을 시도했으나 내 신념과는 맞지않기에 바로 취소했다.

아쉽지만 이미 지나간 일이니 다시 1일 1커밋을 진행한다.

 

solved.ac는 오전 6시 기준으로 날짜가 변경되기 때문에 스트릭이 이어지고 있다.

물론 백준은 깨졌다.

저 사이에 있는 빗금이 불편하다.

 

마무리

이제 곧 백수로 돌아간다.

백수인 상태에서 넥스터즈 23기 활동을 할 것이고, 프로젝트 참여 여부를 고민하고있다.

취업에 집중할건지 프로젝트 참여를 하면서 취준해도 될지 생각할 시간을 가져야될 것 같다.

그동안 나에게 휴식을 너무 안줬던것 같고, 기계처럼 커밋만 찍었던것 같다.

퇴사 직후에는 일단 어디든 혼자 돌아다녀보려고 한다.

그 후로는 재취업을 위해 달릴 것이다.

'잡담' 카테고리의 다른 글

7월 회고  (0) 2023.08.04
6월 회고  (2) 2023.07.02
4월 4주차 결산  (2) 2023.05.01
4월 3주차 결산  (0) 2023.04.24
4월 2주차 결산  (0) 2023.04.17

https://www.acmicpc.net/problem/25427

 

25427번: DKSH를 찾아라

준혁이는 DKSH(단국대학교부속소프트웨어고등학교)에 다니는 학생이다. 어느 날, 준혁이는 길을 걷다가 $N$ 개의 알파벳 대문자가 써있는 종이를 발견했다. 평소에 자신이 DKSH에 다니는 학생이라

www.acmicpc.net

 

4개의 문자를 제외하고 모두 제거했을 때, 남은 문자열이 DKSH일 경우의 수를 구하는 문제입니다.

DKSH의 순서를 유지해야 하며, (a < b < c < d) 조건을 만족하는 (a, b, c, d) 쌍의 갯수를 구해야 합니다.

dp[idx][pos]: list의 idx번째 문자, DKSH 중 pos번쨰 문자를 확인할 때 "DKSH"를 만들 수 있는 경우의 수

 

우선 가장먼저 떠오른 방법이 재귀입니다.

pos == 4, 즉 DKSH를 모두 찾았다면 1을 리턴합니다.

DKSH를 모두 찾지 못했는데 list 내의 문자열을 모두 확인했다면 0을 리턴합니다.

모든 인덱스에 대해 해당 문자를 고르지 않고 idx + 1, pos번째 문자를 확인할 수 있습니다.

그리고 현재 idx번째 문자와 pos번째 문자가 일치하면 idx + 1, pos + 1번째 문자를 확인합니다.

두 가지의 경우를 모두 더해주시면 답이 되겠습니다.

 

여기까지 제가 생각했던 방법이고, 이 방법을 사용하지 않은 풀이도 존재합니다.

어떤 인덱스 idx를 기준으로 경우의 수를 조합하는 방법으로는

idx의 왼쪽에서 해당되는 문자의 갯수 * idx의 오른쪽에 해당되는 문자의 갯수로 구할 수 있습니다.

 

예시로 "YYYSSS"라는 문자열로 "YS"를 만들 수 있는 경우의 수는

왼쪽의 Y1 Y2 Y3 (3개) * 오른쪽의 S1 S2 S3 (3개) = 9로 구할 수 있습니다.

이를 변형해서 Y1 (S1 S2 S3) + Y2 (S1 S2 S3) + Y3 (S1 S2 S3)로도 구할 수 있으며, 이 문제는 이 방법을 이용합니다.

이 방법을 이용하여 해결할 수 있습니다.

찾은 문자에 대해서 왼쪽에 pos-1번 문자의 카운팅이 몇번 진행되었는지 확인만 해주면 됩니다.

'D'를 찾았다면 첫번째 문자이므로 d에 1을 더합니다.

'K'를 찾았다면 앞에 'D'가 카운팅 된 d를 k에 더해줍니다.

'S'를 찾았다면 앞에 'K'가 카운팅 된 k를 s에 더해줍니다.

'H'를 찾았다면 앞에 'S'가 카운팅 된 s를 h에 더해줍니다.

출력은 h를 해주시면 됩니다.

 

첫번째 방법
두번째 방법

역시 두번째 방법이 O(N)으로 끝나기 때문에 속도가 더 빠름을 알 수 있습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
 
public class Main {
    private final static int MAX = 100000;
    private final static char pat[] = new char[]{'D''K''S''H'};
    private static char[] list;
    private static long dp[][] = new long[MAX][4];
    private static int N;
 
    private static long solve(int idx, int pos) {
        if (pos == 4return 1;
        if (idx == N) return 0;
        if (dp[idx][pos] != -1return dp[idx][pos];
        dp[idx][pos] = solve(idx + 1, pos);
 
        if (list[idx] == pat[pos]) {
            dp[idx][pos] += solve(idx + 1, pos + 1);
        }
 
        return dp[idx][pos];
    }
 
    private static void init() {
        for (int i = 0; i < N; i++) {
            Arrays.fill(dp[i], -1);
        }
    }
 
    private static void func() {
        init();
        System.out.println(solve(00));
    }
 
    private static void input() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        N = Integer.parseInt(st.nextToken());
 
        st = new StringTokenizer(br.readLine());
        list = st.nextToken().toCharArray();
    }
 
    public static void main(String[] args) throws Exception {
        input();
        func();
    }
}
 
cs

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
 
public class Main {
    private static char[] list;
    private static int N;
 
    private static void func() {
        long d = 0;
        long k = 0;
        long s = 0;
        long h = 0;
        for (int i = 0; i < N; i++) {
            if (list[i] == 'D') d++;
            else if (list[i] == 'K') k += d;
            else if (list[i] == 'S') s += k;
            else if (list[i] == 'H') h += s;
        }
 
        System.out.println(h);
    }
 
    private static void input() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        N = Integer.parseInt(st.nextToken());
 
        st = new StringTokenizer(br.readLine());
        list = st.nextToken().toCharArray();
    }
 
    public static void main(String[] args) throws Exception {
        input();
        func();
    }
}
 
cs

'algorithm > dp' 카테고리의 다른 글

boj 28018 시간이 겹칠까?  (0) 2023.08.08
boj 12841 정보대 등산  (0) 2023.07.31
boj 25682 체스판 다시 칠하기 2  (0) 2023.02.26
boj 12996 Acka  (0) 2023.01.29
boj 14450 Hoof, Paper, Scissors (Gold)  (0) 2022.12.30

https://www.acmicpc.net/problem/1456

 

1456번: 거의 소수

어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다. 두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소수가 몇 개인지 출력한다.

www.acmicpc.net

정수론 문제는 처음이네요?

 

이 문제에서 요구하는 거의 소수란, 어떤 소수의 N제곱(N >= 2) 꼴이 되는 수라고 합니다.

즉, 8은 2의 3제곱이므로 거의 소수이며, 1024는 2의 10제곱이므로 거의 소수가 됩니다.

주어지는 [A ~ B]의 구간에서 거의 소수의 갯수를 구하는 문제입니다.

 

먼저 소수를 알아야하므로 에라토스테네스의 체로 소수를 모두 구합니다.

범위가 10^14까지인데, 어떤 소수의 제곱이 10^14이하가 되는거라 10^7까지의 소수만 구하도록 합니다.

 

그리고 2부터 1씩 증가하면서 i가 소수인지 확인을 합니다.

소수가 맞다면 i의 n제곱이 r이하일 동안에는 계속 i를 곱해줍니다.

이 과정에서 l 이상, r 이하일 동안은 카운팅을 진행합니다.

어차피 소수 i의 n제곱이고, 그 수는 다른 소수를 곱해서는 도달할 수 없는 수입니다.

 

이 과정에서 문제가 있었습니다.

i를 계속 곱하는 과정에서 수가 long 범위를 벗어나는 경우입니다.

어떤 소수를 n제곱 하면 long 범위를 초과했고, 음수 값이 되어 r을 넘는 값임에도 계속 반복문을 도는 문제가 있었습니다.

 

결국에는 WA를 받게되었고, i를 1번 덜 곱하는 방법으로 해결하였습니다.

i * i <= r 이라는 식을 i <= r / i 로 변경하여 곱셈을 진행하였고, 이 방법으로는 long 범위를 초과하지 않는다는 것을 확인했습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
 
public class Main {
    private final static int MAX = 10000001;
    private static boolean prime[] = new boolean[MAX];
    private static long l, r;
 
    private static void init() {
        for (int i = 2; i * i < MAX; i++) {
            if (prime[i]) continue;
 
            for (int j = 2; i * j < MAX; j++) {
                prime[i * j] = true;
            }
        }
    }
 
    private static void func() {
        init();
 
        int ret = 0;
        for (long i = 2; i * i <= r; i++) {
            if (prime[(int) i]) continue;
            long mul = i;
            while (mul <= r / i) {
                mul *= i;
                
                if (mul >= l) {
                    ret++;
                }
            }
        }
 
        System.out.println(ret);
    }
 
    private static void input() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        l = Long.parseLong(st.nextToken());
        r = Long.parseLong(st.nextToken());
    }
 
    public static void main(String[] args) throws Exception {
        input();
        func();
    }
}
 
cs

알고리즘

1일 1알고리즘

 

RealMySQL 스터디

넥스터즈 운영진 일과 몇몇 일들이 겹쳐 이번주 분량을 채우지 못했다.

다음주에는 당연히 남은 분량을 채워야되겠고, 다음주는 확실하게 준비해야 될 것이다.

벌써 5주라는 시간이 흘렀고 시간이 좀더 지났을때 과거에 정리했던 내용들 보면서 적어도 이해할 정도는 돼야하지않을까 생각한다.

 

후기

블로그 포스팅에 변화를 가져가려고 한다.

매주 작성한 주단위 결산들을 보면서 무작정 찍어내는 것처럼 보여서 의미가 없다는 생각이 들었고,

월단위 포스팅으로 변경해도 무방하다는 생각이 들었다.

 

그리고 주단위로는 내가 공부한 내용 또는 알고리즘 포스팅을 할 계획이다.

얼마나 지켜질지는 지켜봐야겠지만 좀더 의미있는 포스팅을 하기 위함이다.

내가 참고하기 위해 포스팅하는 것이지만

알고리즘이든 개발지식이든 글을 보고 유익함을 느끼는 분이 소수나마 있는걸 알기에 최대한 정확한 정보를 전달하기 위해 노력할 것이다.

'잡담' 카테고리의 다른 글

6월 회고  (2) 2023.07.02
5월 회고  (4) 2023.06.01
4월 3주차 결산  (0) 2023.04.24
4월 2주차 결산  (0) 2023.04.17
4월 1주차 결산  (4) 2023.04.10

알고리즘

1일 1알고리즘

 

RealMySQL 스터디

이번주차로 3주차가 진행되었다.

생각보다 내용이 어려웠고, 무엇보다 저번에 진행했던 내용들과 내가 정리했던 내용들을 기억하지 못한다는 문제점을 발견했다.

요즘 나에게 맞는 효율적인 공부법을 찾아보고 있지만 쉽지는 않은것 같다.

이번주차도 일단 다음주차 분량을 정했지만.. 아직.. 아무것도.. 정리하지 않았다. ㅎㅎ

 

Nexters 서버 관련

나는 Nexters 23기 운영진이고, CTO를 맡고있다.

CTO로서 홈페이지 관리를 하고있으며, 이번주는 모집이 공개되는 날이므로 이 일에 집중했다.

근데 코드를 수정하고 github에 업로드하는 과정에서 문제가 발생했다.

규칙이나 그런걸 미숙지한 상태라서 건드리면 안될 코드를 건드렸고, 복구하고 다시 올리는 과정을 거쳤다.

우리 운영진들 모두 인수인계를 받지 못한 부분이라 많이 당황했지만 수습중이다.

 

후기

모집일이 슬슬 다가오면서 바빠지고 있는데

문제는 아직 모집이 시작도 안됐다는 것이다.

우선 급한불은 끈것 같지만 앞으로 해야할 일들을 정리해나갈 것이다.

https://teamnexters.com/

 

NEXTERS : IT Community for Experts

 

teamnexters.com

넥스터즈 23기 모집이 곧 시작되니 지원 많이 해주시면 감사하겠습니다!

'잡담' 카테고리의 다른 글

5월 회고  (4) 2023.06.01
4월 4주차 결산  (2) 2023.05.01
4월 2주차 결산  (0) 2023.04.17
4월 1주차 결산  (4) 2023.04.10
3월 5주차 결산  (2) 2023.04.03

https://www.acmicpc.net/problem/27977

 

27977번: 킥보드로 등교하기

첫 번째 줄에 학교까지의 거리, 킥보드 충전소의 개수, 최대 충전소 방문 횟수를 나타내는 세 정수 $L, N, K$가 공백으로 구분되어 주어진다. 두 번째 줄에 $i$번째 충전소의 위치를 나타내는 $N$개

www.acmicpc.net

지인분이 출제한 대회문제가 백준에 등록되었습니다.

문제출제라니.. 무슨 문제를 만들어야하고, 테케는 어떻게 만드는지 모르는 입장에서 그저 신기하네요 ㅋㅋㅋ

다행히 제가 풀수있는 문제를 만들어 주셨습니다 ㅎㅎ

 

이 문제는 0에서 출발하여 L까지 정해진 배터리 용량으로 목적지까지 가야합니다.

충전소는 N개, A[i] 지점마다 있으며, 최대 K번 충전이 가능합니다.

이 때 최초 구매할 수 있는 배터리 용량의 최소를 구하는 문제입니다.

 

최종으로 구해야 하는건 배터리 용량의 최소이므로 이를 파라매트릭 서치로 구해야 합니다.

목적지까지는 갈 수 있어야하므로 최소 용량 l은 maxDis가 되겠고, 최대 용량 r은 출발지점에서 목적지까지의 거리 L이 되겠습니다.

maxDis는 출발지점과 첫 번째 충전소, 각 인접한 충전소들, 마지막 충전소와 도착지점 사이의 거리의 최대입니다.

그리고 계산의 편의를 위해 배열에 도착지점인 L을 추가합니다.

이 문제는 충전소의 위치가 정렬된 상태로 주어지므로 정렬로직이 필요 없습니다.

 

그러면 배터리 용량이 m이라고 했을 때, 충전소를 K번 이하 방문하면서 목적지점인 L 까지 갈 수 있는지 확인합니다.

L에 도착했을 때 충전소를 K번 이하로 방문할 수 있다면 ret을 갱신하고 범위를 작게 맞춰서 최적 해를 구합니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <algorithm>
#define MAX_N 100001
using namespace std;
 
int list[MAX_N];
int L, N, K, maxDis;
 
void func() {
    int l = maxDis;
    int r = L;
 
    int ret = 0;
    while (l <= r) {
        int m = (l + r) / 2;
 
        int now = m;
        int pos = 0;
        int cnt = 0;
        for (int i = 0; i < N; i++) {
            if (list[i] - pos > now) {
                cnt++;
                now = m;
            }
            now -= (list[i] - pos);
            pos = list[i];
        }
 
        if (cnt <= K) {
            ret = m;
            r = m - 1;
        }
        else {
            l = m + 1;
        }
    }
 
    cout << ret << '\n';
}
 
void input() {
    cin >> L >> N >> K;
 
    int pre = 0;
    for (int i = 0; i < N; i++) {
        cin >> list[i];
        maxDis = max(maxDis, list[i] - pre);
        pre = list[i];
    }
    maxDis = max(maxDis, L - pre);
    list[N++= L;
}
 
int main() {
    cin.tie(NULL); cout.tie(NULL);
    ios::sync_with_stdio(false);
 
    input();
    func();
 
    return 0;
}
cs

 

'algorithm > binarysearch' 카테고리의 다른 글

boj 18113 그르다 김가놈  (0) 2022.10.09
boj 2295 세 수의 합  (0) 2022.06.28
boj 2110 공유기 설치  (0) 2021.04.13
boj 7453 합이 0인 네 정수  (0) 2021.01.22
boj 2143 두 배열의 합  (0) 2021.01.22

알고리즘

1일 1알고리즘

 

RealMySQL 스터디

1주차에 비해 내용이 많이 어려웠다.

크게 InnoDB 스토리지 엔진의 특징과 InnoDB 버퍼 풀에 대한 내용이었고, 나는 당연히 처음보는 개념들이었다.

일단 처음보는 내용들이라 내용정리는 최대한 많이 해보려고 했고, 그 과정에서 이해해보려고 했지만 생각보다 어려웠다.

다행히도 스터디원 모두가 어려워했던 내용이라 집단지성으로 의견을 나누면서 진행되었기 때문에 이해되는데 많은 도움이 되었다.

다음주 내용도 얼른 정리 해야되는데.. 아직 하나도 못해서 걱정이네 ㅎㅎㅎ

 

후기

요즘 너무 늦게자는것 같은데.. 일찍 자야할텐데 생각보다 할일이 많은것 같다.

막상 깨어있는 시간에 비해 얻어가는게 많지 않다는 생각이 들어서 효율적으로 공부할 수 있도록 노력해야겠다.

두달째 알고리즘 안올리는중 ㅎㅎㅎ.. 정신차리자

'잡담' 카테고리의 다른 글

4월 4주차 결산  (2) 2023.05.01
4월 3주차 결산  (0) 2023.04.24
4월 1주차 결산  (4) 2023.04.10
3월 5주차 결산  (2) 2023.04.03
3월 4주차 결산  (0) 2023.03.27

알고리즘

1일 1알고리즘

 

RealMySQL 스터디

스터디 1주차가 시작되었다.

스터디 시작 전에 각자 개념을 정리하여 GitHub에 pr을 올리고, discussions에 질문들을 등록했다.

이번주 스터디에서 느낀건 토론방식인데 대화에 참여할 수 없는 주제가 많았다는 점이다.

그만큼 내가 모르는게 많다는 건 사실이고, 많이 배울수 있겠다는 생각에 오히려 좋다는 생각은 들었다. 하지만 민폐는 안되는게 맞다.

처음 해보는 방식인데 괜찮았던것 같고, 다음 주차에는 더 준비 잘해야겠다는 생각이 들었다.

 

후기

저번에 PCCP 시험 후기글을 포스팅했었는데 이게 이벤트 당첨이 되어 키보드를 배송받았다. ㅎㅎ 감사합니다! 인생 살만하다고 느껴요.

프로그래머스에서 썸머 인턴 모집이 시작되었다고 메일이 왔다.

똑같이 코딩테스트를 보고, 면접보는 방식은 이전에 하던 방식과 동일한데

나는 PCCP 시험에서 LV4 등급을 받았으므로 코딩테스트에서 면제라고 하더라.

페이지를 들어가서 확인하니 PCCP LV4부터 코딩테스트가 면제된다는 공지가 있었다.

PCCP 시험은 매달 진행되니 한번 해보는 것도 괜찮을것 같다.

'잡담' 카테고리의 다른 글

4월 3주차 결산  (0) 2023.04.24
4월 2주차 결산  (0) 2023.04.17
3월 5주차 결산  (2) 2023.04.03
3월 4주차 결산  (0) 2023.03.27
3월 3주차 결산  (0) 2023.03.20

알고리즘

1일 1알고리즘

 

후기

스터디를 시작했다.

스프링 공부는 어느정도 했지만 DB는 sql문 정도만 몇개 하는 정도였고, 구조나 다른 부분들은 거의 모르는 수준이었다.

공부 해야하는데.. 라고 생각만 하다가 시간이 어느정도 흘러버렸었는데 마침 지인이 스터디를 모집하고 있었다.

어느정도 강제성이 있어야 열심히 한다는걸 알기에 기회라고 생각해서 시작하게 되었다.

진행 방식도 마음에 들고, 이번 기회에 깊게 공부해봐야 겠다는 생각을 했다.

'잡담' 카테고리의 다른 글

4월 2주차 결산  (0) 2023.04.17
4월 1주차 결산  (4) 2023.04.10
3월 4주차 결산  (0) 2023.03.27
3월 3주차 결산  (0) 2023.03.20
코딩전문역량인증시험(PCCP) 후기  (6) 2023.03.19

알고리즘

1일 1알고리즘

 

후기

요즘 스트레스 받는일이 많아서 그런지 피로가 누적됐는지 정신없던 한주였다.

이번주는 쉬었으니 다음주부터 다시 달릴 예정이다.

'잡담' 카테고리의 다른 글

4월 1주차 결산  (4) 2023.04.10
3월 5주차 결산  (2) 2023.04.03
3월 3주차 결산  (0) 2023.03.20
코딩전문역량인증시험(PCCP) 후기  (6) 2023.03.19
Nexters 22기 회고  (2) 2023.03.14

알고리즘

1일 1알고리즘

 

후기

오랜만에 프로그래머스 문제를 풀었는데 확실히 백준이랑 뭔가 많이 다른것 같다.

내가 원하지 않는 데이터 형식, IDE 사용 금지 등 제약이 걸리니 풀이 속도도 느려지는것 같다.

여태 IDE에 얼마나 많은 의존을 했었는지 생각을 다시 하게되었고, C++로 알고리즘을 하던 내가 Java에는 아직 익숙한게 아니라는걸 깨달았다.

글 목록을 보니 또 결산만 차곡차곡 쌓이고 있는데 문제풀이도 얼른 올려야겠네 ㅎㅎ

'잡담' 카테고리의 다른 글

3월 5주차 결산  (2) 2023.04.03
3월 4주차 결산  (0) 2023.03.27
코딩전문역량인증시험(PCCP) 후기  (6) 2023.03.19
Nexters 22기 회고  (2) 2023.03.14
3월 2주차 결산  (0) 2023.03.12

코딩역량인증시험은 민간 자격증으로 프로그래머스에서 작년부터 운영하고 있다.

프로그래머스에서 매칭되는 기업들은 이 자격증을 필수 or 우대 조건으로 활용하는 것으로 보인다.

 

우선 시험은 코딩필수역량인증시험(PCCE), 코딩전문역량인증시험(PCCP) 두 개로 나뉜다.

전공자 / 비전공자 대상으로 나뉘어져있지만 접수는 둘다 되는 것으로 보인다.

코딩필수역량인증시험(PCCE)은 비전공자를 대상으로 진행하는 시험이다.

시험 시간이 50분이고, 인증서 유효기간이 7년이다.

문제는 빈칸 채우기, 디버깅, 코드작성으로 이루어진다고 한다.

사용 언어는 파이썬, 자바, C++이지만 샘플 문제에는 파이썬만 나와있다.

 

코딩전문역량인증시험(PCCP)는 전공자를 대상으로 진행하는 시험이다.

시험 시간은 120분이고, 인증서 유효기간은 2년이다.

문제는 알고리즘 문제로 주어진다.

사용 언어는 파이썬, 자바, 자바스크립트, C++로 선택할 수 있다.

 

내가 응시한 PCCP의 합격기준은 우선 400점 이상을 받아야 한다.

합격을 하게되면 등급이 주어지는데,

400 ~ 499점은 LV1

500 ~ 599점은 LV2

600 ~ 749점은 LV3

750 ~ 899점은 LV4

900 ~ 1000점은 LV5

이렇게 등급이 나뉘어져 있다.

 

코테를 안본지 오래되기도 했고, 요즘 기업들의 코딩테스트 유형을 확인할 수 있지 않을까 하는 생각과 나의 현재 실력을 테스트해보고 싶어서 신청하게 되었다.

저번주에 신청한거라 준비된 것도 없어서 무난하게 LV3을 목표로 도전해보았다.

 

시험은 온라인으로 진행되었고, 화면공유, 웹캠으로 정면 촬영, 모바일캠으로 측면 촬영을 시험내내 해야 한다.

알고리즘 유형은 구현, 정렬, 문자열, dp 정도가 나왔고, 난이도는 다른 블로그에서 본 것처럼 LV2 ~ LV3 정도인 것 같다.

1, 2번을 각각 5분컷 내고나서 쉽다고 생각했지만

3번에 문자열이 나왔고, String 정렬 등 아이디어가 떠오르지 않아 많은 시간을 소모했고, 결국 비효율적인 로직으로 마무리했다. 역시 문자열 어려워..

4번은 나름 어렵지 않게 했던것 같다.

4문제를 다 풀고 30분 정도가 남았지만 검산과정 없이 바로 제출했더니 문제를 틀렸었던 과거가 떠올라서 검산을 한번씩 진행한 후에 최종제출했다.

 

시험 결과는 정말 빠르게 나온다.

30분 이내에 성적확인이 가능하고, 합격 시 카톡으로 연락까지 해준다.

결과는 LV4가 나왔다.

감점이 좀 많이 된 것을 보니 3번은 확실하게 틀리지 않았을까 생각이 들었다.

생각보다는 잘 나온것 같고, 재밌었는 경험이었다.

다음에는 LV5를 목표로 도전해봐도 좋을 것 같다.

 

 

코딩역량인증시험 관련은 아래 링크에서 확인할 수 있다.

https://certi.programmers.co.kr/

 

코딩역량인증시험

코딩 역량에 대한 객관적 측정을 위해 체계적으로 설계된 프로그래머스 코딩역량인증시험

certi.programmers.co.kr

 

'잡담' 카테고리의 다른 글

3월 4주차 결산  (0) 2023.03.27
3월 3주차 결산  (0) 2023.03.20
Nexters 22기 회고  (2) 2023.03.14
3월 2주차 결산  (0) 2023.03.12
3월 1주차 결산  (3) 2023.03.05

+ Recent posts