1 2 3 4 5 6 7 8 9



입력10


출력1 2 - 4 5 - 7 8 - 10


3, 6, 9 가 들어가있으면 박수대신 "-" 표시를 출력한다. 이때, 333 이라는 숫자가 들어오면 --- 으로 출력된다.


해결방법)


n이 입력되면

1부터 n까지 주어지는 상황에서

각 숫자 자리마다 3,6,9가 있는지 확인한 후 있으면 있는만큼 "-"출력한다. 없으면 원래 숫자를 출력한다.


여기서 각 숫자마다 자리를 나눠서 확인을 해줘야하는데 10으로 계속 나눠주면서 몫이 0일때 까지 반복한다.

그래서 반복마다 생겨나는 나머지가 각 자리수이기 때문에 이 자리수가 3,6,9인지를 확인해 주었다.

예시) 245 / 10 = 24,  245 % 10 = 5(일의자리수 추출)  -> 24/10 = 2, 24%10 = 4(십의자리수 추출) -> 2/10= 0, 2%10 = 2(백의자리수 추출)


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
#include<iostream>
using namespace std;
int main()
{
    int n;
    int num;
    int mok;
    int obj; // 나누는 대상
    int r; // 나머지값
    bool flag = 0//1로 켜지면 3,6,9가 하나라도 있었다라는것 
    cin >> n;
    for(int num = 1; num<=n; num++)
    {
        obj = num;
        flag = 0;
        do
        {
            r = obj % 10;
            if(r == 3 || r == 6 || r == 9)
            {
                flag = 1;
                printf("-");
            }
            mok = obj/10;
            obj = mok;
        }while(mok!=0);
        if(flag == 1)
        {
            printf(" ");
            continue;
        }
        printf("%d ",num);
    }
}
cs


반응형

'PS > SWEA' 카테고리의 다른 글

2007번 패턴 마디의 길이  (0) 2018.10.16
1859번 백만 장자 프로젝트  (0) 2018.10.13
5550번 나는 개구리로소이다  (0) 2018.10.06
1868번 파핑파핑 지뢰찾기  (0) 2018.09.30
SWEA - 혜리의 숫자 나누기  (0) 2018.09.23

풀이방법)

나는 먼저 0인 좌표(주변의 지뢰가 없는곳)를 찾아 탐색을 해서 먼저 방문영역을 체크해두기로했다.

 - 여기서 탐색을 한다는 것은 한번의클릭으로 모두 제거되는 것이기 때문에 카운트를 하나로 취급해준다.

그리고 모든 좌표를 탐색하면서 방문이 안된 녀석들은 주변에 지뢰가 있는 것이기때문에 하나씩 카운트를 세준다.


1. 모든좌표마다 8방향 주변에 지뢰개수를 파악해서 그 개수를 표시해주는 맵을 새로 만든다.


2. 새로운 맵에서 0인 좌표부터 bfs 탐색을 시작해서 주변의 영역을 방문표시해둔다. 


3. 인접한 0들은 모두 2번에서 없어진 것이고, 나머지 방문안된 0도 bfs탐색을 하면서 주변영역을 방문표시해준다.


4. bfs탐색을 한번할때마다 카운트를 1씩증가한다.


5. 최종적으로 원래 맵을 돌면서 방문안된 좌표는 하나씩 카운트를 세주고 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
int changemap[301][301= { 1, };
char basemap[301][301];
int visit[301][301];
int n;
int dx[] = { -1,-1,-1,0,1,1,1,0 };
int dy[] = { -1011,1,0,-1,-1 };
queue< pair<intint> > q;
bool isInmap(int x, int y)
{
    if (x <0 || x >- 1 || y<0 || y>- 1)
    {
        return false;
    }
    else
        return true;
}
void Change()
{
 
    for (int x = 0; x<n; x++)
    {
        for (int y = 0; y<n; y++)
        {
            //각 좌표마다 8방향에서 지뢰개수를 채워나간다.
            int cnt = 0;
            if (basemap[x][y] == '*')
            {
                changemap[x][y] = -1;
                continue;
            }
            for (int i = 0; i<8; i++)
            {
                int tx = x + dx[i];
                int ty = y + dy[i];
                if (basemap[tx][ty] == '*')
                {
                    cnt++;
                }
            }
            changemap[x][y] = cnt;
 
        }
    }
}
void bfs(int x, int y)
{
    // bfs탐색으로 0인 좌표에서 8방향 값을 visit 체크해준다. 
    int nx, ny, nnx, nny;
    q.push({ x,y });
    while (!q.empty())
    {
        nx = q.front().first;
        ny = q.front().second;
        visit[nx][ny] = 1;
        for (int i = 0; i<8; i++)
        {
            nnx = nx + dx[i];
            nny = ny + dy[i];
            if (!isInmap(nnx, nny))
            {
                continue;
            }
            if (!visit[nnx][nny])
            {
                visit[nnx][nny] = 1// 방문안된 좌표는 방문처리해준다. 중복 방문표시 예방 
                if (changemap[nnx][nny] == 0)
                {
                    q.push({ nnx,nny });
                }
            }
        }
        q.pop();
    }
}
int main()
{
    int T;
    scanf("%d"&T);
    for (int t = 1; t <= T; t++)
    {
        int ret = 0;
        cin >> n;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                scanf(" %c"&basemap[i][j]);
            }
        }
        Change();
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                if (changemap[i][j] == 0 && !visit[i][j])
                {
                    bfs(i, j);
                    ret++// bfs탐색한다면 클릭횟수증가. 
                }
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                if (changemap[i][j] > 0 && !visit[i][j])
                {
                    ret++;
                }
            }
        }
        printf("#%d %d\n", t, ret);
        memset(visit, 0sizeof(visit));
    }
}
cs


반응형

'PS > SWEA' 카테고리의 다른 글

2007번 패턴 마디의 길이  (0) 2018.10.16
1859번 백만 장자 프로젝트  (0) 2018.10.13
5550번 나는 개구리로소이다  (0) 2018.10.06
1926번 간단한 369게임  (0) 2018.10.05
SWEA - 혜리의 숫자 나누기  (0) 2018.09.23

우연히 알고리즘 잡스에 대한 광고를 보고 호기심이 생겨 미루고 미루던 상담을 드디어 오늘 받게 되었다.


워낙에 요즘 대기업들이 sw 직군을 뽑을때, 코딩테스트를 본다. 여기서 이 코딩테스트를 도와주는 곳이 바로 알고리즘 잡스라는 곳이다.


솔직히 나는 알고리즘 강의나 학원을 잘 믿지는 않는편인데 (머 다른것도 잘못믿지만) .. 구글링이나 네이버에 이 학원명을 치면 좋은글들 뿐이고, 광고또한 솔깃햇어서 이게 대체 뭔가 해서(내눈으로 직접보고 정체를 알기위해 ㅋㅋ) 무거운 발걸음을 옮겼다....


긴 말 안하고 상담 받고 난 후의 느낌을 한문장으로 쓰고 포스팅을 마치겠다.


나 여기 왜왔지?


반응형

'일기' 카테고리의 다른 글

5년 뒤에 어떤모습이 될까?  (0) 2018.10.16
웹퍼블리셔 스터디한날  (0) 2018.10.16
추석날 부천역 드롭탑에서 공부  (0) 2018.09.25
내가 좋아하는것 찾는 방법  (0) 2018.09.04
첫번째 글입니다(테스트)  (0) 2018.08.31

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42578#
문제 설명

스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다.

예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다.

종류이름
얼굴동그란 안경, 검정 선글라스
상의파란색 티셔츠
하의청바지
겉옷긴 코트

스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요.

제한사항
  • clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다.
  • 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다.
  • 같은 이름을 가진 의상은 존재하지 않습니다.
  • clothes의 모든 원소는 문자열로 이루어져 있습니다.
  • 모든 문자열의 길이는 1 이상 20 이하인 자연수이고 알파벳 소문자 또는 '_' 로만 이루어져 있습니다.
  • 스파이는 하루에 최소 한 개의 의상은 입습니다.
입출력 예

clothesreturn
[[yellow_hatheadgear], [blue_sunglasseseyewear], [green_turbanheadgear]]5
[[crow_maskface], [blue_sunglassesface], [smoky_makeupface]]3


해결 방법)


한 4번정도 시도끝에 도저히 아이디어가 안떠올라서 힌트를 얻으러 돌아다녔다 


마침 이문제를 푼 사람을 발견했고, 그사람이 푼 과정을 보게 되었다. (감사합니당 알려주셔서 ㅎㅎ)

그런데 내가 멍청한건지 그 과정을 봐도 이해를한번에 하기 힘들었다.


그래도 푼 사람이니까 믿고 그 방법순서대로 그려가면서 이해해보려했다.

어 그러니까 이게 무슨일이지 그 방법대로하니까 모든 조합의 수가 나와버렸다 ....... 


그 방법은 예를 들어서 설명해보겠다.


example) 

배가 a, b, c 라는 이름의 3개가 있다.

귤은 e, f 라는 이름의 2개가 있다.


여기서 배는 안골랐다라는 경우를 포함해서 (0,a,b,c) 4개가 된다. 

마찬가지로 귤도 안골랐다라는 경우를 포함해서 (0,e,f) 3개가 된다.

이렇게 되면 4*3 =  12가지이고 여기서 0,0 인 둘다 안고르는 경우는 없기 떄문에 -1을 해주면 11가지로 답을 구할 수 있다.


종류를 하나 더 추가해서 보면


배 a,b,c 3개 

귤 e,f 2개

사과 g, h ,i 3개

이렇게 주어졌다고하고 위의 방법대로 하면,

(배 + 1) * (귤 + 1) * (사과 +1) -1 이 총 가지수가 된다.


저기 + 1은 그 종류를 안고른 경우가 되기때문에 모든 조합의 가지수가 나오게된다.


알고리즘 구성을 보면

입력받은 2차원 문자열 배열에서 같은 종류마다 있는 개수 정보를 저장한다.

그리고 그 개수마다 +1 씩해가며 모든 종류를 곱해준다. 

최종적으로 구해진 값에 -1 (전부없는경우)을 한다.


소스코드)


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
#include <string>
#include <vector>
int a[31= { 0, };
int v[31];
using namespace std;
 
int solution(vector<vector<string>> clothes) {
    int answer = 0;
    int size ;
    int ret = 1;
    size = clothes.size();
    for(int i =0 ;i<31; i++)
    {
        v[i] = 0;
    }
    for(int i = 0; i<size; i++)
    {
         if(v[i] == 1)
                continue;    
         for(int j = i ; j<size; j++)
         {
            if(clothes[i][1== clothes[j][1] )
            {
                a[i]++// i번째 종류 증가
                v[j]= 1;
            }
        }
    }
    for(int i = 0 ; i< 31; i++)
    {
        if(a[i]>0)
        {
            ret *= (a[i] +1);
        }
    }
    answer = ret - 1;
    return answer;
}
cs




반응형

오늘은 추석날이다.


나는 늦깍이 취준생이기때문에 쉬는날에도 공부를 해야한다.


스터디 같이 하는 사람이 있어서 아침부터 일찍 부랴부랴 준비하고 부천역에있는 드롭탑에 도착했다.


원래 같았으면 정말 여유롭게 밥먹고 티비 볼거좀 보고 핸드폰좀하다가 나와서 도서관에서 좀 딴짓하며 공부하는 패턴이었겠지만,


같이 하는 스터디 동생이 워낙에 부지런하고 열심히 공부했기때문에 의자에 앉자마자 모라도 생각하고 공부하려고 했다. 물론 리눅스에 웹서버 설치하는데 개뻘짓으로 시간 많이 날려먹엇지만ㅜㅜㅜㅜ(아직까지도 의문이다. 윈도우10에 wsl 이놈이 뭔지 몬르고 써서 그런가...)


도착하고서 카페분위기는 정말 평온하고 조용했다. 추석이라서 그런지 사람이 전혀없었다.. 


우리는 그렇게 열심히 몬가 하기는 했고,, 간단히 깁밥과 두유를 먹으면서 점심시간을 가졌다. 

(두유는 스터디동생이 줬는데 맛있었당 ㅋㅋㅋ , 그리구 두유먹으면서 본 매드클라운의 소년점프?? 이게핫하다해서 봣는데 ㅋㅋㅋ 솔직한 매드클라운의 모습이 인상깊었다. 이번 쇼미더머니에서 떨어진 깊은 빡침이 느껴졌다.)


점심 이후에는 아 오전에 뻘짓으로 좀 얻는게없는 시간을 보내서 그런지 오후에는 생활코딩에서 php 언어를 공부하면서 백엔드의 감만 익혀보았다. php는 html 동적으로 생성하고 바꾸기 때문에 생산성을 향상시키는 아주 좋은 기술이다. 이와 같은 언어로는 jsp, asp, node.js, python 등등이 있다고한다.


무튼 공부하고나서 부천역 근처에 어묵파는 포장마차쪽의 골목길을 들어가면 김밥천국이 보이는데 이곳 정말 숨은 밥집이다.

프랜차이즈점이라 여러 김밥천국이있지만 여기는 정말 인심이 넘치게 양을 많이 주는것같다. 다른데는 값은 비싸면서 양은 적은데 그거에 비하면 정말 좋다라고 생각한다. 물론 음식 맛도 맛잇다 조미료떄문인지 모르겠지만 ㅋㅋ 안들어가있는게어딨냐 솔직히 밖에서 파는 음식들가운데,,


지금 이글쓰고 있는 시각은 새벽인데 하.... 피곤하고 글쓰는것도 귀찮타 ㅋㅋ 이만 잘래 바이~

반응형

'일기' 카테고리의 다른 글

5년 뒤에 어떤모습이 될까?  (0) 2018.10.16
웹퍼블리셔 스터디한날  (0) 2018.10.16
알고리즘 잡스 상담후기  (8) 2018.09.30
내가 좋아하는것 찾는 방법  (0) 2018.09.04
첫번째 글입니다(테스트)  (0) 2018.08.31

캔디팡 문제 링크 : http://codeup.kr/JudgeOnline/problem.php?id=2605


해결 전략)


2차원 맵정보가 있는데 각 좌표마다 방문하면서 4방향(상,하,좌,우)에 인접해있는 모든 개수정보를 알고 결국, 인접해있는개수가 3개이상이면 카운팅을 해줘서 답을 구할수있다.

문제예시그림예를 들어서 그린 그림입니다.


여기서 인접해 있는 것이 보인다면 그 곳으로 좌표이동하고 다시 4방향으로 인접해 있는 개수정보를 파악한다.


이 작업을 모든 맵 좌표를 방문하면서 체크하게 된다. 단, 방문이 된 곳은 체크를 따로해줘서 재탐색이 이뤄지지 않도록 한다.


소스코드)

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
#include<stdio.h>
int map[8][8];
int visit[8][8];
int ret;
int cnt_ret;
int dx[] = { 1,-1,0,0 };
int dy[] = { 0,0,-1,1 };
int solve(int r, int l)
{
    // 4방향에서 현재숫자와 같은것을 비교하여 캔디팡이 터지는 영역을 카운팅 하는함수
    int tx, ty;
    int cnt =1 ;
    visit[r][l] = 1;
    for (int i = 0; i < 4; i++)
    {
        tx = r + dx[i];
        ty = l + dy[i];
        if (tx < 1 || tx > 7 || ty < 1 || ty >7)
        {
            continue;
        }
        else
        {
            if (!visit[tx][ty] && (map[tx][ty] == map[r][l]))
            {
                cnt += solve(tx, ty);
            }
        }
    }
    return cnt;
}
int main()
{
    for (int i = 1; i <= 7; i++)
    {
        for (int j = 1; j <= 7; j++)
        {
            scanf("%d"&map[i][j]);
        }
    }
    for (int i = 1; i <= 7; i++)
    {
        for (int j = 1; j <= 7; j++)
        {
            ret = solve(i,j);
            if (ret >= 3)
            {
                cnt_ret++;
            }
        }
    }
     
    printf("%d\n", cnt_ret);
}
 
cs


반응형

'PS > 코드업' 카테고리의 다른 글

3704번 계단 오르기 2  (0) 2019.03.31
1920번 2진수 변환 (재귀함수)  (0) 2019.03.16
3733번 우박수 길이 - large  (0) 2019.01.27
2606. 소수점 이하 출력  (0) 2018.12.17
재귀함수 1부터 n까지 합 구하기  (0) 2018.11.18

처음에 완전 탐색을 하면서 막대기가 생겨나는 경우의 수(있고 없고)마다 생겨나는 숫자를 M으로 나눠 지는지를 확인했다.

하지만 계속 틀리면서 다시 문제를보니 30만 자리라는 어마어마한 숫자 크기때문에 이렇게 풀면은 안되는 구나를 느꼇다. 

결국 질문을 해서 힌트를 얻은결과 숫자 나누는 방법을 적용해서 풀면은 해결할 수 있다고 생각했다.

(나누기는 초딩때부터 아는건데...... 아주 세세하게 들어가서 나머지가 구해지는 과정을 그려보니 알 수 있었다.)



막대기 마다 생겨나는 부분이 M배수가 되는지 확인하면서(%M == 0) 막대기를 배치 시킬 수 있는 경우의 수를 구한다.

혜리 숫자 나누기 설명

위에서 보면 막대기가 가능한 부분은 파란 부분인데, 여기서 생겨나는 왼쪽부분과 오른쪽부분이 M으로 나눠지는지 확인하면서 나눠지면 막대기가 존재할수 있는 수를 카운팅 해준다.


모든 개수를 세주고나서 최종적으로 구한 경우의 수에 -1을 해주면서 CASE 6의 막대기 생겨나는 경우의 수를 없애준다. 왜냐하면 이미 CASE1~5까지 CASE6에 해당하는 부분을 포함하기때문에 -1을 해주는 것이다. 즉, 2^구한 막대기 경우의수-1 을 하면 정답이 되게된다.


막대기때문에 생겨나는 숫자가 M으로 나눠지는지 확인하는 방법은 다음과 같다.

EX) 123456이 7로 나눠지는지 확인 하는 과정 - 우리는 보라색 부분의 식을 반복하면서 최종적으로 0인지 확인하면 된다.


소스코드)

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
#include<cstdio>
#include<iostream>
using namespace std;
int a[300000];//30만개 숫자
int N;
int M;
 
void solve(int t)
{
    int before = 0;
    int mod = 0;
    int ret = 1;
    int cnt = 0;
    bool flag = false;
    for (int i = 0; i < N; i++)
    {
        mod = (10 * before) + a[i]; // 다음 숫자 생성
        mod = mod % M; //숫자를 나눠본다.
        if (mod == 0// 나눠지면 막대기 개수 증가
        {
            cnt++;
            if (i == N - 1)
                flag = true;
        }
        before = mod; // 숫자 생성위해서 현재 나눈 나머지 값을 before로 넘겨준다.
    }
    if (!flag)
    {
        printf("#%d 0\n", t);
        return;
    }
    else
    {
        cnt--;
        for (int i = 0; i < cnt; i++)
        {
            ret = (ret * 2) % 1000000007;
        }
        printf("#%d %d\n", t, ret);
    }
}
int main()
{
    int T;
    scanf("%d\n"&T);
    for (int i = 1; i <= T; i++)
    {
        scanf("%d %d"&N, &M);
        for (int i = 0; i < N; i++)
        {
            scanf("%1d"&a[i]);
        }
        solve(i); 
    }
    return 0;
}
cs


반응형

'PS > SWEA' 카테고리의 다른 글

2007번 패턴 마디의 길이  (0) 2018.10.16
1859번 백만 장자 프로젝트  (0) 2018.10.13
5550번 나는 개구리로소이다  (0) 2018.10.06
1926번 간단한 369게임  (0) 2018.10.05
1868번 파핑파핑 지뢰찾기  (0) 2018.09.30

유투브에서 본 영상들에서 소개된 말들을 모아본다면 다음과 같다.


- 좋아하는 것 = 언제든 변함.

- 경험에서 좋아하는것이 나옴

- 좋아하는 것은 딱 나타나는게 아니라 서서히 나타남

- 우리는 좋아하는것을 찾아가는 과정속에 살아감.

- 좋아하는 일을 찾는 것은 이상형을 찾는것과 비슷

- 완벽한 이상형은 없다.

- 다른사람과 비교x, 내안에서만 이것이 다른것보다 좋아하는지만 생각하자.

- 좋아하는 일은 서술형으로 설명된다? 가치관이기때문

이것을 보고 느낀점은 바로 좋아하는 일을 할 수는 없다? 아니 찾을 수는 없겟구나라는 것이다.

하지만 그것을 찾기위해선 경험을 해야지 알 수 있다고 하는데 난 여기서 경험한다라는게 좀 중요한것같아.

대충 경험하면서 이것이 내가 안좋아한다? 라고 생각할수도 있기때문이지 ㅜㅜ..

난 지금 코딩테스트를 대충 경험한것같아서 좀 아쉬운 느낌이 많아 , 또한편으로는 방법론? 잘하는방법같은 것을 찾아보아서 내가 이걸 싫어하는건가 라고 생각도 들구 말이야..


아 방금 몬가 좀 추상적인 느낌이긴한데 대충 문득 생각 나는 거긴한데 적어볼게 여기다가..

내가 인생을 살아가자나 근데 살아가는 도중 내 자신 내면과 얼마나 소통을 잘하고 귀기울이고 그것을 해결? 또는 공감?? 하기위해 하는 모든 행동들이 어떤일을 하는데에 제대로 경험하는 방법 인것같아.  이렇게 되면 모든지 포기는 안하고 열심히 하게는 될것인데, 만약 이렇게 해도 누구의 평가나 내자신이 스스로 평가했을때, 발전 가능성이 없다고 한다면 나중에서야 포기를 생각하는게 덜후회될것같다..


항상 최선의 선택을 하려고 해보고 후회를 남기지 말아보자.

내가 주도권을 잡고 내삶을 만들어 가는 거니깐.....!!



반응형

'일기' 카테고리의 다른 글

5년 뒤에 어떤모습이 될까?  (0) 2018.10.16
웹퍼블리셔 스터디한날  (0) 2018.10.16
알고리즘 잡스 상담후기  (8) 2018.09.30
추석날 부천역 드롭탑에서 공부  (0) 2018.09.25
첫번째 글입니다(테스트)  (0) 2018.08.31

Hello world!


반응형

'일기' 카테고리의 다른 글

5년 뒤에 어떤모습이 될까?  (0) 2018.10.16
웹퍼블리셔 스터디한날  (0) 2018.10.16
알고리즘 잡스 상담후기  (8) 2018.09.30
추석날 부천역 드롭탑에서 공부  (0) 2018.09.25
내가 좋아하는것 찾는 방법  (0) 2018.09.04

+ Recent posts