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

 

17131번: 여우가 정보섬에 올라온 이유

첫 줄에 별의 개수 N이 주어진다. 그 다음 줄부터 N개의 줄에 걸쳐 별의 좌표 x y가 주어진다.

www.acmicpc.net

알고리즘 정말 오랜만이네요.

 

만들어야 하는 별자리는 V 모양이며, V를 회전한 모양은 포함하지 않습니다. (ex. < > ^ ㄱ ㄴ 모양은 X)

여기서 가로를 x, 세로를 y 축이라고 가정했을 때

예시 기준 a, b, c만 별자리로 인정할 수 있습니다.

 

그리고 문제에서도 a.x < b.x < c.x이고 a.y > b.y < c.y 라고 친절히 설명도 해줍니다.

이 조건에서 라인 스위핑 기법을 활용하기 위해 y 값 기준 내림차순 정렬이 필요하다는 것을 알 수 있습니다.

그러면 같은 y값들을 가지고 먼저 놓여진 별들x 값이 작은 별들의 갯수와 x 값이 큰 별들의 갯수를 곱하면 별자리의 갯수를 구할 수 있습니다.

어떤 정해진 범위 내에서 특정 범위의 값을 구한다고 했을때 구간합을 떠올릴 수 있습니다.

구간합을 구하는 알고리즘은 세그먼트 트리가 있습니다.

그러면 이 문제는 세그먼트 트리 + 라인 스위핑을 활용하여 해결할 수 있습니다.

 

로직의 순서는

1. 위에서 설명한것처럼 y 좌표 기준으로 내림차순 정렬합니다.

2. 같은 y값을 가진 별들을 가지고 x 값이 작은/큰 별들의 갯수를 구합니다.

3. 그 다음 같은 y값을 가진 별들을 한꺼번에 트리에 업데이트를 합니다.

 

이게 끝이지만 주의할점은

같은 y값을 가진 모든 별들이 2번 과정이 끝난 후에 3번 과정을 같이 진행해야합니다.

이 풀이의 핵심은 2번 과정에 들어왔을때 트리에 있는 값들은 모두 자신보다 y 값이 큰 별 이라는 것입니다.

그래서 저는 같은 y값을 가진 별들을 벡터에 넣어주고, 3번 과정에서 한꺼번에 업데이트를 했습니다.

 

 

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <algorithm>
#include <vector>
#define MAX 200001
#define MOD 1000000007
using namespace std;
typedef long long ll;
typedef pair<intint> pii;
 
ll tree[MAX << 3];
pii list[MAX];
int N;
 
bool cmp(pii a, pii b) {
    if (a.second == b.second) return a.first < b.first;
    return a.second > b.second;
}
 
ll update(int node, int l, int r, int idx) {
    if (idx < l || r < idx) return tree[node];
    if (l == r) {
        return tree[node] = tree[node] + 1;
    }
 
    int m = (l + r) >> 1;
    return tree[node] = update(node << 1, l, m, idx) + update((node << 1+ 1, m + 1, r, idx);
}
 
ll query(int node, int l, int r, int s, int e) {
    if (s <= l && r <= e) return tree[node];
    if (e < l || r < s) return 0LL;
 
    int m = (l + r) >> 1;
    return query(node << 1, l, m, s, e) + query((node << 1+ 1, m + 1, r, s, e);
}
 
void func() {
    sort(list + 1, list + 1 + N, cmp);
 
    ll ret = 0;
    int pre = list[1].second;
    vector<int> v;
    for (int i = 1; i <= N; i++) {
        int m = list[i].first;
        if (pre == list[i].second) {
            v.push_back(m);
        }
        else {
            for (auto x : v) {
                update(10, (MAX - 1<< 1, x);
            }
            v.clear();
            pre = list[i].second;
            v.push_back(m);
        }
        ret = (ret + query(10, (MAX - 1<< 10, m - 1* query(10, (MAX - 1<< 1, m + 1, (MAX - 1<< 1)) % MOD;
    }
 
    cout << ret << '\n';
}
 
void input() {
    cin >> N;
    for (int i = 1; i <= N; i++) {
        cin >> list[i].first >> list[i].second;
        list[i].first += (MAX - 1);
    }
}
 
int main() {
    cin.tie(NULL); cout.tie(NULL);
    ios::sync_with_stdio(false);
 
    input();
    func();
 
    return 0;
}
cs

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

boj 12895 화려한 마을  (0) 2022.09.07
boj 10167 금광  (0) 2022.09.02
boj 16993 연속합과 쿼리  (2) 2022.08.29
boj 12846 무서운 아르바이트  (0) 2022.08.19
boj 1849 순열  (0) 2021.09.08

넥스터즈 8주차

2월에 설 연휴가 있어서 3월까지 진행되었다.

생각보다 개발 시간이 오래걸려서 발표 당일 오전까지 개발을 했고, 사실상 밤을 새고 세션에 참여했다.

다행히도 핵심 기능들은 모두 완료해서 라이브 시연도 문제없이 끝났고, 24기 활동이 마무리되었다.

이후에 추가 구현이나 개선작업은 추가 회의를 통해 진행할 예정이다.

 

RealMySQL 2권 스터디

1년이상 이어진 스터디는 들어본적 없다.

1권을 끝내고 1~2달 정도 휴식 및 재정비 시간을 가지긴 했지만 모든 스터디원들이 같이 2권을 시작했고, 끝이 보인다.

가끔 흥미가 떨어지는 등 진행이 주춤할 때도 있었지만 다들 책임감을 가지고 완주를 목표로 이어 나가고 있다.

 

1일 1알고리즘

와 좀만 더있으면 1000일이네

 

마무리

이력서도 끝났고, 공채는 올라오고 있지만 아직 좋은 소식은 없다.

사실 넥스터즈 24기가 끝나자마자 번아웃이 크게 찾아왔다.

난 왜이렇게 번아웃이 자주 찾아오는지, 아니면 내가 그렇게 생각하는건지? 그냥 모르겠다.

백수 생활이 오래돼서 그런가

모르겠고 공부나 하자

열심히 사는분들 진짜 리스펙합니다.

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

2월 회고  (4) 2024.03.07
1월 회고  (0) 2024.02.15
12월 회고  (6) 2024.01.09
11월 회고  (2) 2023.12.12
10월 회고  (2) 2023.11.11

넥스터즈 5~ 7주차

5주차 중간발표 시간에 다른 팀의 진행 상황을 확인했다.

다들 생각보다 빠르게 출시가 되는 팀도 있었고, 갈길이 멀어보이는 팀도 있었다. 우리 얘기다.

 

web socket을 만만하게 보고 여유를 가졌다가 넥나잇 세션때 정말 많은 작업을 했다.

22기에 넥버닝, 23기에 넥나잇 세션을 경험했지만 시간이 이렇게 빨리 간건 처음인것 같다.

예전에는 놀기도 하고 돌아다니고 그랬었는데.. 팀원들 모두 작업만 하다가 벌써 아침이야? 했던 기억이 난다.

새벽에 잠오는거? 그럴 시간이 없었다 그냥 작업했다..

 

이 글을 쓰는 현재는 무사히 마무리가 되었지만 리펙토링 & 개선 작업은 무조건 진행할 예정이다.

하자고 말을 한건 아니었지만 프로젝트 초기부터 이후 개발을 생각했기에 다들 참여하는 분위기다.

 

RealMySQL 2권 스터디

RealMySQL 스터디를 작년 3월에 시작했는데 벌써 1년이라는 시간이 지났다.

1권을 마치고 2권의 핵심적인 부분까지 마무리가 되었고, 추가로 뒤에 나오는 부분까지 훑고 지나가는게 좋을 것 같아서 계속 진행중이다.

스터디원분들이 많이 바쁘시지만 끝까지 참여하시는게 대단하다고 생각이 든다.

이렇게 오래가는 스터디도 별로 없다던데 ㅎㅎ

 

1일 1알고리즘

 

마무리

벌써 공채가 열렸네? 일어나 일해야지 ^^^^^^^^^

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

3월 회고  (0) 2024.04.13
1월 회고  (0) 2024.02.15
12월 회고  (6) 2024.01.09
11월 회고  (2) 2023.12.12
10월 회고  (2) 2023.11.11

SPURT 프로젝트 개선

약간의 수정과 리펙토링 진행했다.

이번달 까지는 정기적으로 모여서 회의도 하고 그랬지만

다음달부터는 일정상 개인적으로 천천히 진행할 예정

 

넥스터즈 1 ~ 4주차

넥스터즈 24기 정규활동이 시작되었다.

이전 기수 경험 덕분인지 세션 일정이나 운영 부분에서 운영진들이 얼마나 고생하는지 바로 알것 같다.

아 물론 우리가 앞에서 잘했으니 ㅎㅎㅎㅎ 이번 기수도 영향을 받은게 아닌가~

 

이번 기수에도 새로운 경험을 원했고, PM분들의 발표를 듣자마자 딱 여기다싶은 팀이 있었다.

PM과의 대화 시간에도 먼저 가서 어필을 했고, 팀원으로 뽑히게 되었다.

 

우리 팀원들은.. 상당히 잠이 없으신 분들인것 같다.

새벽 늦게까지도 작업을 정말 많이 하시고 열심히 하시는 분들만 모인것 같다.

너무 열심히 하셔서 괜히 눈치가 보이는? 그런 표지션이 된것 같은데 열심히 해야지 ^^^^

 

프로젝트를 두개씩 하다보니 진행상황이 생각보다는 늦어진것 같지만

프론트엔드 업무가 상당히 많기에.. 뒤쳐지지는 않은 것 같아서 다행이라는 생각이 든다.

이제 프로젝트 하나가 끝났기에 더욱 집중할 수 있을것 같다.

벌써 절반의 세션이 지났는데 최종발표까지는 프로젝트를 완주할 수 있도록 해야겠다.

 

RealMySQL 2권 스터디

1권으로 스터디를 시작해서 거의 10개월째 달려오고 있다.

이렇게 꾸준하게 스터디가 진행된다는것 자체가 스터디원들도 신기해하는것 같다.

그만큼 다들 책임감이 있기에 스터디가 유지되는게 아닌가 싶다.

2권 스터디도 약 1 ~ 2달 정도가 남았는데 잘 마무리되었으면 좋겠다.

 

1일 1알고리즘

 

마무리

이번 겨울은 뭔가 추운날이 적었던 느낌?

분명 저번 2월에는 디게 추웠던 기억이 나는데 요즘은 10도가 넘어가는 날이 많고 그냥 이상한것 같다.

아무튼.. aws에서 보안문제가 터져서 계속 해결하고 있는데 이것 또한 경험이라고 생각한다.

패스워드도 변경하고 MFA 설정까지 했고, 문제에 대해 후속처리를 진행중이다.

aws에서 연락이 온다면 바로 관심갖고 해결하자는 교훈을 얻고간다 ^^

1월부터 이력서를 갈아엎자! 라고 목표를 세웠는데 아직까지 완성하지 못한 나에게 약간의 질책을 하면서 이력서나 써야지

다음 회고는 일찍 적도록 하자 ^^!

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

3월 회고  (0) 2024.04.13
2월 회고  (4) 2024.03.07
12월 회고  (6) 2024.01.09
11월 회고  (2) 2023.12.12
10월 회고  (2) 2023.11.11

SPURT 프로젝트 개선

느리더라도 꾸준히 개선 작업에 참여중이다.

백엔드는 수정사항이 많지 않아서 디자이너, 프론트의 이슈들에 대해 의견 나누는 중이다.

validator나 코드 내 지저분한 부분들은 리펙토링할 예정

 

RealMySQL 2권 스터디

한번씩 보고 사용해본 내용들이 주로 나오지만 공간 검색 부분에 들어서 갑자기 난이도가 확 올라간 느낌이다.

안그래도 검색이 중요한데 이런 부분들은 스터디 진행으로 끝낼것이 아니라 복습 과정도 무조건 거쳐야 될것 같다는 생각이 들었다.

정신차려 ㅎㅎ

 

1일 1알고리즘

 

마무리

넥스터즈 24기에 참여하기로 결정했다.

원래 취업 전에는 활동을 쉬려고도 했지만 뭐 바쁘게 살아야겠다는 생각도 있고,

여러 사람들 만나서 인사이트를 꾸준히 얻어가는 것도 좋지 않을까라는 생각을 했다.

이번기수는 시니어로 참여하는 첫 활동이고, 23기에는 운영진으로 활동했었기 때문에 현재 운영진분들이 얼마나 고생하시는지 너무 잘안다 ㅎㅎ

이 글을 작성하는 현 시점에서는 팀빌딩이 완료되었고, 오프라인 회의까지 진행한 상태인데 관련 내용은 다음달 회고로~

 

벌써 23년이 마무리되었는데 개인적으로 많이 아쉬웠던 한해였다.

물론 넥스터즈를 시작했고, 운영진을 하는 등 쉽게 경험할 수 없는 일들을 한꺼번에 하긴 했지만

다니던 회사를 나오게 되었고, 6개월째 백수 생활을 이어가고 있는 내 모습을 보면서 현타가 오기도 한다.

 

올해는 이력서 수정 작업부터 하려고한다.

서류에서 떨어지는 이유는 무조건 내 잘못이 99.9% 이상이다.

1월 내에 최대한 마무리하고, 상반기 뿌수러가자

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

2월 회고  (4) 2024.03.07
1월 회고  (0) 2024.02.15
11월 회고  (2) 2023.12.12
10월 회고  (2) 2023.11.11
Nexters 23기 CTO 회고  (11) 2023.10.20

SPURT 프로젝트 개선

ncp 크레딧이 모두 소진되어 aws로 이관했다.

이관하면서 도메인도 변경하고 아직 프론트쪽 코드는 변경하지 않은 상태라 api 요청은 불가능한 상태

이번 주말내로 진행될 예정이고, 앞으로도 개선작업 쭉 이어갈 예정이다.

 

백엔드 작업으로는 "저장" 버튼을 빠르게 두번 연속으로 누르게 되면

2개의 레코드가 저장되는 흔히 말하는 따닥되는 상황이 있어서 3초 내에 1개의 게시글만 저장될 수 있도록 수정했고,

프론트와 연결되는대로 테스트할 예정이다.

 

Effective Java 스터디

넥터 끝나고 다들 일이 많은지 바쁜지 일정 조율이 쉽지 않다.

마지막 주차만 남겨두고 있고, 마지막 스터디는 오프라인으로 진행하기로 했지만 아직까지 진행되진 않은 상태

그래도 이번달 내에는 진행하지않을까 생각한다.

 

RealMySQL 2권 스터디

확실히 1권 내용보다는 공감이 많이되는 내용이고, 정리하는데 큰 어려움은 없었던것 같다.

스터디를 진행하면서도 내용 이해가 더 잘되는 느낌이다.

평소에 모르고있던 내용도 알게되는 것들이 많아서 도움이 많이 되고있다.

 

1일 1알고리즘

 

마무리

우테코는 역시나 떨어졌다. 자원자가 엄청 많았고, 당연히 실력자분들도 상당했다.

내가 개발을 어떤 방식으로 하고 있는지, 다른분들은 어떻게 하는지 알수 있었던 시간이었다.

아쉽지만 나는 내년 상반기를 노려야할 것 같고, 정신 차려야겠다 ㅎㅎㅎ

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

1월 회고  (0) 2024.02.15
12월 회고  (6) 2024.01.09
10월 회고  (2) 2023.11.11
Nexters 23기 CTO 회고  (11) 2023.10.20
9월 회고  (4) 2023.10.09

SPURT 프로젝트 개선

아직 백엔드 작업은 거의 없지만 디자인&FE 파트를 도와가면서 주 1회 진행중이다.

발견한 버그가 있으면 기록했다가 해결하려고 하고있고, oauth를 백엔드에서 처리하는 작업을 11월부터 진행할 예정이다.

서버는 유지하되 당분간은 AWS를 사용하기로 한 상태고, NCP 추가 크레딧은 추후 신청할 예정이다.

 

Effective Java 스터디

10월 내에는 마무리하지 못했지만 현재 2주 분량이 남은 상태로 11월 내에는 마무리될 것으로 보인다.

스터디가 마무리되면 처음부터 복습을 해야할 것 같다.

 

RealMySQL 2권 스터디

8월에 1권 스터디가 종료되었고, 휴식기를 거친 후 2권 스터디를 시작했다.

멤버는 그대로이며, 진행방식도 그대로다.

1권 내용은 조금은 먼 미래에 사용할 것들이라면 2권은 당장 사용할 것들이라고 해도 무방할 것이다.

그래도 어디서 많이 봤거나 사용해본 것들도 있기 때문에 진도는 좀더 빠르게 나갈 것으로 보인다.

물론 아직 3회밖에 안했다. ^^

 

1일 1알고리즘

 

마무리

우테코 프리코스를 하고있는데 fork 수가 자바만 2.8K.. 이거 맞나?

자바 + 스프링을 쓰다가 자바만 쓰게되니 뭔가 느낌이 다르다.

평소에 내가 어떤 스타일로 코드를 짜왔는지 파악이 가능했고, 점점 개선해나가는 중이다.

이번주가 마지막 주차고, 밀린 자소서도 있고 스터디 준비도 해야되는데 바쁘게 살아야지 ^^

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

12월 회고  (6) 2024.01.09
11월 회고  (2) 2023.12.12
Nexters 23기 CTO 회고  (11) 2023.10.20
9월 회고  (4) 2023.10.09
2000  (4) 2023.09.13

Nexters 22기에 이어 23기 활동을 마무리했다.

23기 운영진 (CTO)으로 활동했으며, 프로젝트와 병행으로 참여했다.

 

나는 넥스터즈로 첫 동아리 활동을 시작했고, 첫 운영진 활동까지 마무리했다.

운영진은 회장이 먼저 투표로 선출되고, 다른 운영진을 회장이 뽑는 방식으로 결정된다.

나는 운영진 활동으로 더 다양한 일을 경험해볼 수 있겠다는 생각이 들었고,

마침 같은 팀원이었던 분이 회장이 되는 것이 사실상 확정인 분위기가 되어서 고민끝에 직접 연락을 드려서 CTO로 합류하게 되었다.

22기 최종발표 전날, 게더타운으로 같이 작업하던 도중 뜬금없이 "운영진 되려면 형한테 물어보면 돼?" 라고 물어봤었던 기억이 있다.

다행히도 흔쾌히 받아주셔서 23기 CTO로 합류할 수 있었다.

 

인수인계

CTO로서 처음 해야할 일은 당연히 인수인계다.

전임자가 했던 일, 앞으로 내가 해야할 일을 듣고 업무에 익숙해져야 한다.

하지만 인수인계 당시에는 처음부터 어떻게 접근해야할지 감이 오지않았고, 내가 이걸 잘할 수 있을지 걱정되었다.

일단은 계정 로그인부터 시작해서 서버 테스트까지 진행했다.

https://teamnexters.com/

 

NEXTERS : IT Community for Experts

 

teamnexters.com

서버는 넥스터즈 공식 홈페이지 유지보수를 다룬다.

로컬에 실행시키는 과정부터 많은 시간을 소비했다.

vue와 python으로 구성된 프로젝트였는데 둘다 이해하는데 많은 시간이 걸렸고,

서버에서 명령어를 입력하는 부분에서 에러가 많이 발생했어서 해결하는데 많은 시간을 썼다.

다행인건 그래도 신입 모집 공개전까지는 완료되었다.

 

그리고 후원사인 네이버 클라우드와의 미팅을 진행했다.

처음에 나만 톡방에 던져져서 당황했다.

여긴 어디지? 이분들은 누구지? 나는 뭘 해야하는거지? 그냥 있으면 되는건가? 정말 많은 생각을 했다.

실제로 톡방에 던져지고 11일 동안 아무런 얘기도 없었고,

내가 먼저 미팅을 잡아서 간단하게 인사도 드릴겸 22기는 어떻게 진행됐었는지, 23기는 어떻게 진행될건지 여쭤보기로 결정하여 연락드렸다.

담당자분께서 정말 친절하게 미팅 주도해주시고, 질문도 잘 받아주셔서 지원해주시는 내용을 완벽하게 이해할 수 있었다.

 

리크루팅

기존 활동회원부터 신입 회원까지 선발하는 과정이다.

기존 회원 모집을 1주일정도 진행했고, 이후 신입 회원을 모집한다.

신입 모집 공개 전까지 공식 홈페이지에 표시될 화면을 모두 수정해야 한다.

공개날에 바로 바껴야하기 때문에 전날 새벽에 업데이트를 완료했다.

 

신입 모집 기간에 생각보다 많은 양의 서류를 받았다. 역시나 마지막날에 거의 절반정도의 서류가 도착을 하더라.

이번 기수는 임팩트 캠퍼스에서 비수도권 인재분들에 대한 교통비 전액 지원을 해주셔서 더 많은 기대가 되었다.

지방에 계신 분들은 넥스터즈에 대해 모르실 수 있으니 지인을 통해 홍보를 부탁했고, 결과적으로 많은 비수도권 인재분들의 지원을 받을 수 있었다.

 

서류를 받았으니 개발자 / 디자이너로 나눠서 서류 검토를 시작한다.

정말 많은 분들이 서류지원을 해주셨고, 최대한 꼼꼼하게 검토하기 위해 10일이라는 시간을 사용했다.

1차적으로 자소서가 너무 부실하거나 깃허브, 포폴 등 다른 내용이 부실한 경우는 과감하게 탈락 처리를 드렸다.

그럼에도 2, 3차 검토에서 확인해야할 서류 갯수가 많이 남았었다.

 

다른 운영진과의 관점의 차이일 수도 있다.

다른 개발자 운영진들은 자소서에 더 많은 비중을 두고 과감하게 날린 부분도 많았지만 나는 활동 내용에 비중을 두었다.

많은 분들이 다른 활동 경험이 많이 있었고, 프로젝트 진행에 문제가 없다고 판단해서 2, 3차로 넘긴 경우가 많았다.

이런 경우는 운영진끼리 기준을 일치시키고 접근했다면 어땠을까 하는 아쉬움이 남는다.

결과적으로는 총 봐야할 서류 양이 많아져서 밤새면서 검토하기까지 했다.

 

서류 검토가 완료되면 면접을 준비한다.

5명의 운영진이 모든걸 담당하기엔 부족함이 있기 때문에 면접관과 도우미를 섭외해야 한다.

우리 운영진들은 인성면접을 맡기로 하고, 기술면접관과 도우미를 미리 섭외했다.

통과된 서류를 기술 면접관분들께 전달하고, 면접 전날까지 면접 질문을 정리한다.

 

인당 15분 정도의 면접시간 내에 인성 + 기술 질문은 모두 수행해야하기 때문에 준비한 질문을 빠르게 처리해야 한다.

생각보다 인성질문은 공통된 질문이 많아서 개별질문은 별로 하지 못했다.

이 짧은 시간의 면접에서 합격자를 가려내기란 너무 어려웠다.

녹화본을 몇 번 돌려봤는지 모를 정도로 많이 봤고, 어렵게 최종 합격자를 선발했다.

 

세션 준비

세션 전까지 해야할 일로는 크게 아이디어 발제 및 확정, 1주차 세션 준비다.

아이디어 발제는 넥스터즈 프로젝트인 "모임모임"을 활용한다.

활동하는 회원분들 신규 가입을 독려하고, 아이디어를 등록할 수 있도록 권한을 부여한다.

생각보다 많은 분들이 아이디어를 내주셔서 다행이었고 투표를 통해 10개의 아이디어를 선정할 수 있었다.

 

아이디어 선정을 하면서 정규세션에 활동할 장소를 확인해야 한다.

이번 기수는 SBA에서 정규세션 내내 활동할 장소를 대관해주셔서 매주 대관 걱정은 없어졌다.

대관 장소 답사를 해서 PC, 빔 프로젝트, 와이파이 등 환경들을 하나하나 점검했고, 필요한 것들을 정리했다.

생각보다 대관 장소가 층 전체를 이용할 수 있기 때문에 많은 것들을 시도해볼 수 있겠다는 생각이 들었다.

아쉬운게 있다면 장소가 1년 이상 방치되었던 곳이라 HDMI 연결이나 몇몇 에어컨이 작동하지 않는 등의 문제가 있었다.

여름에 진행되었기 때문에 에어컨 문제는 생각보다 크게 체감되었고, 많은 회원들의 피드백을 받게 되었다.

하지만 시설문제를 우리가 해결할 수 있는 부분은 전달하는 것 밖에 없었다.

 

1주차 준비를 위해 많은 시간을 소비했던것 같다.

첫 세션 진행이라 그런지 공지할 내용, 후원사 소개, 굿즈 배부, 팀빌딩, PM 발표, 직군별 네트워킹, 세션장소 자리배치 등 고려해야할 부분이 너무 많았다.

이 많은것들을 처리하기 위해 운영진들끼리 오프라인으로 모여서 회의를 진행하기도 했다.

 

정규 세션

정규 세션은 매주 회의를 통해 진행방식을 결정한다.

회의로 세부일정 및 공지할 내용을 정하고 세션 전에 공지한 후에 세션이 진행된다.

지난 기수의 자료를 참고하고, 따라가겠지만 우리가 모든 것을 직접 계획해서 세션을 이끌어 나가야 한다.

 

내가 CTO로서 정규세션 기간에 했던 업무는 NCP 크레딧 지원, 컨퍼런스 강연자 모집 정도로 다른 운영진들에 비해 상대적으로 적었다.

그래서 운영지원이나 엑셀 등 다른일들을 맡아서 진행하기도 했다.

 

세션 시작 전부터 네이버 클라우드 담당자분과 미팅을 진행하여 제휴 내용을 파악하고, 크레딧 지원 현황을 관리하기 위한 폼을 만들었다.

담당자분을 직접 초대해서 네이버 클라우드 홍보도 할 수 있는 자리도 마련해드리고, 겸사겸사 직접 만나뵙기도 했다.

그리고 팀별 크레딧을 지원받기 시작했다.

일단 신청 해놓고 AWS를 사용한다던지 발급된 크레딧을 사용하지 않는 분들이 좀 계셔서 사용 실적이 높지 않다는 점은 보완해야할 부분이지만

거의 모든 팀에서 신청을 해주셨고, 생각보다 많은 회원분들이 관심을 가져주셨다는 부분은 긍정적이다.

나 또한 신청해서 크레딧을 지원받았고, 서버 운영비 부담없이 프로젝트를 진행할 수 있었다.

 

6주차에는 컨퍼런스 세션이 진행된다.

인수인계 당시 강조받았던 내용에서 미리 진행되어야 할 것들 중 하나가 컨퍼런스 세션 준비였다.

컨퍼런스 강연자들을 모집해야 하고, 강연자분들은 발표 준비를 해야한다.

늦어도 1주 전에는 모집이 완료되어야 하고, 나는 세션 시작 전부터 물색을 시작했다.

신입 회원들의 서류와 모든 회원들의  노션 자기소개를 읽어보고 좋은 인사이트를 주실 수 있을만한 분들을 찾아내기 시작했다.

 

강연자 모집에는 두 가지 방법이 있다.

공개적으로 모집을 해서 선발하는 방식과 개인적으로 연락을 해서 직접 선발하는 방식.

나는 개인적으로 연락을 드리는 방법을 선택했다.

이렇게 하니 선발하는데 어려움이 있었고, 많은 시간이 소요되었다.

 

이번 컨퍼런스는 오프라인으로 진행되었기 때문에 장소의 제약이 있었다.

세부직군으로 나눈다면 모두가 원하는 직군의 컨퍼런스를 들을 수 있다.

하지만 공간이 충분하지 않아서 개발자 / 디자이너로만 나누었고, 개발자는 공통 주제만 다루는 것으로 제한했다.

몇몇 분들은 집중하지 않거나 아예 다른 방에 가서 다른 일을 하시는 분도 계셨지만 흑..

그래도 나름 괜찮게 마무리된 것 같아서 다행이었다.

 

1주차 세션은 팀 빌딩이 이루어진다. 세션 시작 전에 선정된 PM이 발표를 진행하여 본인이 발제한 아이디어를 소개한다.

회원들은 발표를 듣고 희망하는 팀을 선택한다. 회원 중 한명이 팀빌딩 웹 서비스를 개발해주셨고, 생각보다 편하게 팀빌딩을 진행할 수 있었다.

 

나는 이번 기수에 운영진으로 활동하지만 회원으로서 프로젝트에도 참여했다.

팀은 내가 개발하고 싶었던 기능들이 있었고, 내가 사용할만한 프로젝트를 선택했다.

내가 운영진이기 때문인지, 내 의지를 좋게 봐주셨는지 모르겠지만 팀원으로 받아주셔서 감사했다.

 

이번 기수 프로젝트는 여유를 가지고 진행했던 것 같다.

나는 프로젝트를 할때마다 항상 새로운 경험을 하는 것을 목표로 했다.

이번에도 같은 백엔드 개발자분께 새로운 것들을 많이 배웠다는 생각이 들었다.

실제로 내가 지금까지 본적도 없는 파일 구조를 보여주셨고, 그대로 진행하기로 했다.

적응하는데 시간이 꽤 걸렸지만 유지보수나 가독성 부분에서 훨씬 좋다는 느낌을 확 받게 되었다.

 

물론 빌드 과정에서 auto restdocs 설정 부분의 에러가 나한테만 계속 발생하는 억까를 당하거나

기능이 추가되면서 기존의 설계가 좀 꼬이는 문제가 발생하긴 했지만 새로운 것을 시도해본것 만으로도 만족한다.

내가 구현하지 않은 부분들이나 다루지 않았던 네이버 클라우드 플랫폼은 추후에 내가 공부해야 할 부분이다.

아쉬웠던건 내가 로그인 구현에 관여하지않은것 정도가 될것 같다.

프론트에서 next.js로 로그인을 모두 구현해버렸기 때문에 내가 구현할 일은 없어졌다.

추가로 다른 문제가 생긴다면 구현을 해보겠지만 이때 하지못한건 분명 아쉬움이 있었다.

 

밤새서 작업하는 넥나잇 세션도 재미있었던것 같다.

작업이 밀려있기도 했고, 운영진으로서 준비를 해야했기 때문에 일찍와서 세션장소 내부 점검을 하고 작업을 했다.

저녁 6시부터 세션이 시작되지만 생각보다 다들 일찍오셔서 오랫동안 작업을 하시더라.

중간마다 있는 컨텐츠와 석식, 야식, 조식 모두 제공되어 회원분들의 만족도가 높았던 것 같다.

무엇보다 시간이 지날때마다 쓰려지는 분들이 많아서 그것또한 재미있는 포인트였다.

나는 그때 자주 밤을 새던 시기였어서 그렇게 힘들지는 않았던것 같다.

작업해야할 것들이 많아서 오히려 시간이 부족했지만 모여서 오랫동안 작업하니까 소통이 잘되면서 진행이 훨씬 잘되는 느낌이었다.

 

22기 때는 앱 개발을 했었고, 최종발표 전까지 출시를 하지 못했었다.

하지만 이번엔 웹 개발이었고, 미리 배포를 하고 개발을 진행할 수 있는 점이 좋았다.

개발은 발표전날까지 계속되었지만 원하는 목표까지는 개발하는데 성공했다.

아쉽게도 수상은 하지 못했지만 정말 재미있는 세션을 보냈다고 생각한다.

 

인수인계

처음에 내가 인수인계를 받았다면 이제 후임자에게 인수인계를 해야한다.

이전 기수들에서 이어져오던 인수인계 문서를 최신화하고, 내가 진행했던 내용들을 따로 모아두는 방식으로 진행했다.

 

인수인계 당일에는 23, 24기 CEO, CTO가 모여서 진행했다.

CTO는 인수인계를 위해, CEO는 모든 업무를 파악하기 위해, 그리고 내용 확인을 위해서다.

약 한시간 반 정도의 인수인계를 진행했고, 내가 알려줄 수 있는 모든 것을 자세하게 설명드렸다.

그럼에도 놓친 부분이 있으면 개인적으로 연락드려서 알려드리기도 했으며, 내가 정리했던 자료까지 공유했다.

 

이전 기수까지는 CTO 인수인계에 아쉬움이 있다는 느낌을 받았었다.

당장 내가 인수인계를 받을 당시에도 단 30분만 진행했었고, 나는 업무를 파악하는데 많은 시간이 걸렸었다.

내가 어떤 고생을 했었는지 스스로가 알기 때문에 다음 기수부터는 고생을 덜 하실 수 있도록 준비를 철저하게 했던것 같다.

물론 업무를 진행하면서 인수인계를 준비한건 아니긴 한데 ㅎㅎ 세션이 종료된 직후부터 자료들을 최신화시키고, 인수인계 준비를 했었다.

 

네이버 클라우드와의 제휴 내용에 대해서는 직접 미팅하는 것이 낫겠다고 판단했고, 같이 미팅에 참여했다.

23기 넥스터즈와의 제휴 내용과 변경되는 부분이 있는지, 크레딧 중복 지원 정책도 그대론지, 빠진 부분은 없는지 확인했다.

그렇게 나의 마지막 업무는 마무리되었다.

 

다음기수 업무가 종료될때 까지도 업무 관련된 연락은 계속 받을 예정이다. 아 이건 너무 당연한 얘긴가?

물론 후임자분도 책임감이 있으신 분이니 잘 하실거라고 믿는다. ^^

 

마무리

개인적으로는 정말 아쉬움이 많았던 기수였다.

22기가 종료되고, 운영진 업무를 시작할 때쯤 회사 일에 대한 스트레스를 많이 받았었다.

내가 원하는 일을 더이상 할 수 없겠다는 생각이 들었고, 약 3개월정도 퇴사를 고민하면서 번아웃이 크게 찾아왔었다.

그 때가 리쿠르팅 기간이었고, 서류를 검토하는데 집중하지 못해서 밤을 새기도 했다.

그래도 같이 일하는 운영진들과 프로젝트하는 팀원들이 있었어서 끝까지 버틸 수 있었던것 같다.

회사에서 우울했던 대신 운영진 활동하면서 정말 행복했다.

 

첫 운영진 활동이라 적응하는데 어려움이 있었다.

지원자의 서류를 보고 면접을 내가 직접 본다는 것은 상상도 할 수 없었다.

실제 면접을 볼 당시 긴장했었는데, 같이 들어갔었던 기술 면접 담당해주셨던 분이 잘 도와주셔서 금방 적응할 수 있었다.

아쉬웠던 점이 있다면 면접 당일 갔었던 스터디룸의 환경이 별로 안좋았는지 마이크 음질이 너무 안좋았고, 네트워크 문제로 면접이 지연되기도 했다.

다음 이런 기회가 생긴다면 더욱 꼼꼼하게 진행해야겠다는 생각이 들었다.

 

세션 진행 관련해서는 내가 기여한 부분이 많지 않았다.

위에서 언급한것처럼 나는 NCP 크레딧과 컨퍼런스 정도가 주 업무였고, 나머지는 다른 운영진을 도와주는 정도였다.

그래도 회의하기 전에 세션 진행에 필요한 것들, 우리가 확인해야할 것들에 대해 미리 정리하였고, 부족한 부분은 없는지 다시 확인했다.

덕분인지 회의때 그렇게 헤매거나 했던 적은 없었던것 같다. 물론 다른 운영진들 덕분이지만~

 

"몇 번을 잘해도 한 번 못하면 폐급이다" 라는 말을 어렸을 때부터 정말 많이 들어왔었고,

나 또한 그렇게 생각을 하고 있기 때문에 기수를 활동하는 회원들에게 부족함을 보여주고 싶지 않았다.

회의가 일찍 끝나더라도 놓친 부분은 없었는지 다시 확인해야 했고, 진행하는데 실수를 최대한 줄이려고 했다.

물론 그렇게 하지는 못했고, 심적으로도 부담이 많았지만 시간이 지나고 같이 일을 하면서 어느정도 괜찮아진 것 같다.

첫 동아리 치고는 잘 마무리한것 같아서 세션 종료 후에는 뿌듯했던것 같다.

 

장소, 식대, 간식 등 지원해주는 것들이 많아서인지, 진행이 깔끔해서인지, 피드백을 적극적으로 받아들여서인지 모르겠지만

결과적으로 넥스터즈 23기는 회원들의 좋은 반응을 얻었고, 만점에 가까운 만족도를 기록하면서 잘 마무리되어 다행이라고 생각한다.

 

프로젝트 결과는 나름 만족한것 같다.

우선 웹 프로젝트라 배포가 금방된다는 것은 분명 좋은 부분이다.

이번에도 새로운 기능들을 사용해봤고, resolver나 mapper, jpa같은 개념들은 다시 보는것도 중요하다는 생각이 들었다.

새로운 파일 구조를 배웠다는 점이 제일 큰 것 같다. 와 이렇게도 나눌 수 있구나 라는 생각이 팍 들게 되었다.

이제 잘 흡수해서 내것으로 만드는 일만 남은것 같다.

빌드 과정에서 발생한 에러는 지금 생각해도 뭔지 모르겠다. pc 초기화를 시켜야되나..? 왜 나만 않되?

 

이번 팀원들이 정말 좋았던 점은 다들 술을 안먹는다는 것이다.

1주차 뒷풀이부터 2차로 카페에 갔으면 말 다한거다.

나도 술을 좋아하지 않기 때문에 정말 완벽한 팀이 아닐수가 없다.

전체 회식은 불참하고 파티룸 잡아서 놀기도 하고, 방탈출카페, 보드게임 등 우리끼리 놀러다녔다.

작업할 때는 정말 열심히들 한다는 생각이 들었다. 다들 새벽 늦게까지 잘 생각을 안한다. (한 분 제외)

백엔드에는 베테랑이 한분 계시고, 프론트에도 베테랑분들이 계시고, 디자이너 분들은 24시간 회의를 하는것처럼 디코만 들어가면 회의를 이미 하고 계신다.

디자인은 정말 몇 번을 봐도 미쳤다는 생각밖에 들지 않는다. 어떻게 저렇게 할 수 있는거지? 생각이 매번 들었다.

이번 기수는 비수도권 인재분들에 대해서 교통비를 전액 지원해드렸다.

팀원 중 한분이 대상이신데, 교통비를 지원받는다고 해도 이동 시간이 너무 많이 걸려서 많은 고민을 했을텐데 모든 세션에 출석을 해주셔서 리스펙한다.

팀원 모두가 갓생사시는 분들이라 나도 이번 활동하면서 자극을 많이 받아가는것 같다.

 

다음 기수 활동은 아직 고민을 하고있지만 하는 쪽으로 생각중이며, 24기 활동은 즐기면서 할 수 있었으면 좋겠다.

 

Nexters 23기 운영진들

SPURT 개발한 게꽁지 팀

다른 Nexters 23기 회원분들

모두 고생많으셨고, 24기 운영진분들 화이팅~

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

11월 회고  (2) 2023.12.12
10월 회고  (2) 2023.11.11
9월 회고  (4) 2023.10.09
2000  (4) 2023.09.13
8월 회고  (2) 2023.09.05

넥스터즈 운영진 인수인계

8월에 넥스터즈 23기가 종료되었고, 24기 CTO에게 인수인계를 진행했다.

내가 인수인계를 받을 당시 부족했던점을 떠올려서 하나라도 전달 못하는 일이 없도록 CTO가 해야 할 업무들, 내가 했던 일들을 분리해서 작성했다.

인수인계를 하지 못한 부분에 대해서는 따로 알려드리면서 놓치는 부분이 없도록 하고 있다.

당분간은 후임자분께서 업무 적응 기간에 질문이 들어올 수 있으니 최대한 대처하려고 한다.

인수인계를 마치니 정말 끝났다는 것이 실감이 났고, 회고 쓰는게 왜이렇게 오래걸리지.. 쓸게 너무 많다.

 

SPURT 프로젝트 개선

넥스터즈 기수가 종료되었지만 파트 1명씩 남아서 개선 및 추가개발을 진행하기로 했다.

주 1회 만나서 작업 진행 중이지만 대부분 수정사항이 디자인&FE 파트라서 나는 의견을 같이 나누는 정도로 하고있다.

서버는 NCP를 사용중이라 크레딧 확인해서 추가 크레딧 지원받을 예정이다.

 

Effective Java 스터디

기수가 종료되어 각자 취준, 이직 준비에 따라 스터디 일정이 뒤로 밀리는 경우가 종종 있었다.

하지만 10월 내로는 마무리될 예정이고, 끝나면 다시 처음부터 복습할 예정이다.

 

1일 1알고리즘

 

마무리

왜 벌써 10월..?

명절이라 오랜만에 본가에 다녀왔다.

가족들이랑 시간을 보내느라 친구를 만나지는 못했지만 충분히 쉬었다는 생각이 들었다.

요즘 채용공고도 많이 올라오고 있고, 집에서 푹 쉬었으니 자소서 열심히 쓰자 ^^

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

10월 회고  (2) 2023.11.11
Nexters 23기 CTO 회고  (11) 2023.10.20
2000  (4) 2023.09.13
8월 회고  (2) 2023.09.05
7월 회고  (0) 2023.08.04

아 땜빵 불편한데

 

아무튼 첫 1문제를 푼지 4년, 1일 1알고리즘을 시작한지 2년 넘는 시간이 지났고, 어느새 2000문제를 달성했다.

많이 푼다고 좋은건 아니지만 꾸준하게 하려다보니 이렇게 된것 같다.

 

아 400문제부터 100단위로 캡쳐본 남겨놨었는데 pc 초기화 후 복구문제로 중간에 날라간거 너무 아쉽네..

 

글을 어떻게 끝내지?

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

Nexters 23기 CTO 회고  (11) 2023.10.20
9월 회고  (4) 2023.10.09
8월 회고  (2) 2023.09.05
7월 회고  (0) 2023.08.04
6월 회고  (2) 2023.07.02

넥스터즈 6 ~ 8주차

세션 시작 전부터 6주차 컨퍼런스 진행을 위한 강연자분들을 물색했다.

결과적으로 좋은 반응을 얻어서 다행이라고 생각한다.

자세한 모집 과정은 23기 회고 글에 작성할 예정이다.

 

이번 세션기간 동안 밤낮이 바뀐 상태로 참여했기 때문에 밤새고 세션활동을 한 적이 많이 있었다.

덕분인지 이번 넥나잇은 별로 피곤하지 않은 상태에서 지냈던것 같고, 팀원들과 많은 시간을 함께 했기 때문에 진행이 어느정도 되었다고 생각한다.

하지만 아직 해야할게 많이 남긴 했더라..

 

최종발표 당일까지도 개발을 진행했던것 같다.

우리가 볼륨을 적게 가져가긴 했지만 너무 여유롭게 진행한건 아닌지 돌아보게 되었다.

아쉽지만 무사히 마무리했고, 이번에도 좋은 팀원들을 만났다는 것에 만족한다.

 

RealMySQL 스터디

RealMySQL 1권 스터디가 종료되었다.

1권 내용은 생각보다 딥해서 당황스러웠지만 스터디원분들 모두 나보다는 잘하시는 분들이라 따라가기 바빴던것 같다.

9월 내로 2권 스터디를 진행할 예정이다.

 

Effective Java 스터디

넥스터즈 기수가 종료되었지만 내부 스터디를 꾸준히 진행중이다.

생각보다 자바에서 내가 모르는 내용이 많았고, 도움이 많이 되고있다고 생각한다.

앞으로도 책을 완전히 끝내는 것을 목표로 진행할 예정이다.

 

1일 1알고리즘

 

마무리

1월 ~ 3월 넥스터즈 22기

3월 ~ 8월 넥스터즈 23기

사실상 8개월간 동아리 활동을 한 느낌이다.

첫 동아리가 넥스터즈였고, 운영진까지 무사히 마무리해서 다행이다.

이제 하반기 시즌인데 취준 화이팅~

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

9월 회고  (4) 2023.10.09
2000  (4) 2023.09.13
7월 회고  (0) 2023.08.04
6월 회고  (2) 2023.07.02
5월 회고  (4) 2023.06.01

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

 

28018번: 시간이 겹칠까?

댓글을 달아준 학생 수 $N$이 주어진다. $(1\leq N\leq 100\,000)$ 다음 $N$개 줄에는 각 학생의 좌석 배정 시각 $S$와 종료 시각 $E$가 주어진다. $(1\leq S\leq E\leq 1\,000\,000)$ 다음 줄에는 특정한 시각의 개수

www.acmicpc.net

특정 시간에 학생이 몇명 채워져 있는지 구하는 문제입니다.

이 문제는 학생들이 머무르는 구간 l ~ r이 주어집니다.

l ~ r 구간을 모두 채워주어야 하며, 매 쿼리의 l ~ r 구간의 누적을 구하면 O(N^2)의 시간이 걸려 TLE가 발생합니다.

매 쿼리마다 누적합을 갱신하지 않고, 시작과 끝에만 표시하여 한꺼번에 누적합을 구할 수 있는 imos 기법을 활용합니다.

 

학생은 l 시간에 들어와서 r 시간까지 머무릅니다.

따라서 학생이 존재하기 시작하는 l 시간에 +1, 학생이 없는 시간인 r + 1 시간에 -1을 누적합니다.

마지막에 누적합을 갱신하면 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
#include <iostream>
#define MAX 1000001
using namespace std;
 
int dp[MAX];
int N, M;
 
void func() {
    for (int i = 1; i < MAX; i++) {
        dp[i] += dp[i - 1];
    }
 
    int x;
    cin >> M;
    while (M--) {
        cin >> x;
        cout << dp[x] << '\n';
    }
}
 
void input() {
    int l, r;
    cin >> N;
    for (int i = 1; i <= N; i++) {
        cin >> l >> r;
        dp[l]++;
        dp[r + 1]--;
    }
}
 
int main() {
    cin.tie(NULL); cout.tie(NULL);
    ios::sync_with_stdio(false);
 
    input();
    func();
 
    return 0;
}
cs

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

boj 12841 정보대 등산  (0) 2023.07.31
boj 25427 DKSH를 찾아라  (0) 2023.05.21
boj 25682 체스판 다시 칠하기 2  (0) 2023.02.26
boj 12996 Acka  (0) 2023.01.29
boj 14450 Hoof, Paper, Scissors (Gold)  (0) 2022.12.30

+ Recent posts