너무 복잡하게 생각하지 않으면 간단하게 해결할 수 있는 구현(브루트포스) 문제이다.

특히 for문을 잘 이용해서 처리하면 되므로, for문을 통해서 잘 해결할 수 있는 전략을 세우는 것이 중요하다.

코드는 다음과 같이 하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
num = int(input())
people = []
 
for i in range(num):
    people.append(list(map(int, input().split())))
 
rank = []
for i in range(num):
    rankNum = 1
    for j in range(num):
        if (people[i][0< people[j][0]) and (people[i][1< people[j][1]):
            rankNum += 1
    rank.append(rankNum)
 
for i in rank:
    print(i, end = ' ')
cs

 

 

문제 출처: https://www.acmicpc.net/problem/7568

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

 

    이 책을 처음 접하게 된 이유는 서점에서 베스트셀러에 있었기 때문이다. 그리고 그 많은 책들 중에서도 철학책이라는 점에서 눈에 띄었다. 제목도 또한, 철학의 여행을 떠나는 열차라는 느낌에서 끌리는 점이 있었고, 간단한 책 소개를 보니 이 책은 철학에 대해서 교과서적으로 적은 느낌이 아니라 일상생활에서부터 철학을 끌어와서 이야기를 펼쳐내는 느낌이라는 것 같아서 읽게 되었다.

 



    『소크라테스 익스프레스 』에서는 철학자 14명을 특별히 선정하여 이야기를 풀어나간다. 철학에 대해서 많이 알지 못하는 사람으로서 책이 어렵다고 느껴진다는 점이 있기는 하다. 내용의 많은 부분에 있어서 단순히 한 번만 읽어서는 제대로 깊이 있게 이해하기는 어렵다는 느낌이 든다. 또한, 참조문헌이 있어 오히려 교양서에 가까운 논문을 읽는 느낌마저 살짝 들 때도 있었다. 하지만, 어려운 문장들 속에서 가슴에 꽂히는 문장들이 있기 마련이고, 지금 내가 처한 상황 혹은 스스로의 경험에 맞게 마음속 깊이 새겨지는 문장들을 중심으로 본다면 충분히 이 책이 그 가치를 한다는 생각도 든다.

 


“가끔 우리는 의미를 너무 빨리 창출한다… 소로는 그러한 경향을 경계했다. “보편 법칙을 너무 성급하게 끌어내지 말 것.” 소로는 스스로에게 이렇게 말한다. “특수한 사례를 더 명확하게 들여다볼 것.(120)” 

    나에게 있어서 이 책에서 크게 3가지를 얻었던 것 같다. 우선 이 책에서 “천천히”의 미덕에 대해서 얻게 되었다. 이 책에서는 전반적으로 “천천히”의 미덕에 대해서 계속 언급을 한다. 하나의 주제로서 설명을 하기보다는 하나의 철학자가 말한 내용 중 하나의 일환으로 “천천히”와 “느긋함”에 대해서 지속적으로 이야기를 한다. 특히 “가끔 우리는 의미를 너무 빨리 창출한다… 소로는 그러한 경향을 경계했다. “보편 법칙을 너무 성급하게 끌어내지 말 것.” 소로는 스스로에게 이렇게 말한다. “특수한 사례를 더 명확하게 들여다볼 것.(120)” 눈앞에 보이는 것을 바로 규정하지 않고 기다리면 더 많은 것을 보게 된다.”라는 문장이 특히 기억에 남는다. “멈춤은 … 생각의 씨앗이다. 모든 멈춤은 인식의 가능성, 그리고 궁금해할 가능성으로 가득 차 있다.(57)”로 멈춤에 대해서 언급을 하기도 한다. 또한, 작가는 경험을 바탕으로 “속도는 조급함을 낳는다. 기다릴 줄 아는 능력은 삶의 속도와 반비례하여 줄어든다…. 조급함은 미래를 향한 탐욕이다. 인내는 시간에 너그러운 태도를 보이는 것이다.(219)”라고 서술한다. 이렇듯 삶에 대해서 작가는 철학으로부터 느긋하게 생각을 정리할 시간의 여유를 가지는 법을 찾은 것이 아닐까. 그 생각이 글에 고스란히 녹아들어 간 것이 아닐까라는 생각이 들기도 했다. 또한, 이러한 부분을 알아차린 독자의 시점에서 나는 나의 삶을 돌아보는 계기가 되기도 하였다. 항상 조급함 속에서, 마이크로 하게 의미를 부여하게 되는 삶을 살고 있다고 생각이 된다. 그런데 그렇게 하기보다는 여유를 가지고, 조금 더 큰 그림을 바라보면서 더 많은 것을 눈에 담아보는 것은 나에게 어떠한 변화를 줄 것인가라는 기대도 해보게 되었다. 

 

 


 

“당신이 보는 것이 곧 당신 자신이다.(134)”

    두 번째는 자신(自身)을 갈고닦아야 한다는 것이다. 철학자 소로에 대해서 이야기하는 부분에서 소로이 뛰어난 시력은 ... 품성에서 나오는 능력이었다… 소로는 아름다움을 인식하는 것을 “마음 검사”로 여겼다. 아름다움은 보는 이의 마음속에 있다. 자기 자신을 향상시키지 않고는 자신의 시력을 향상시킬 수 없다. 보는 것의 역학은 양쪽으로 작용한다. 자신이 어떤 사람인지가 무엇을 보는지를 결정할 뿐만 아니라, 무엇을 보는가가 자신이 어떤 사람인지를 결정한다. <<베다>>에서 말하듯, “당신이 보는 것이 곧 당신 자신이다.(134)”라는 부분이 감명 깊었다. 사실 많이 들어봤을 법한 이야기라고 볼 수 있다. 스스로를 알아라. 이 이야기는 철학에서만 나오는 이야기가 아니다. 심지어 그 어떤 종교에서라도, 예를 들어 기독교나 불교, 스스로에 대한 갈고닦음 혹은 다른 사람을 자신을 사랑하듯 사랑하라 라는 비슷한 느낌으로 “자신”에 대해서 강조를 한다. 이렇게 공통적으로 “나”에 대해서 강조하는 (그렇다고 이기적인 자신으로 오해를 해서는 안된다) 데에는 분명히 어떤 힘이 작용하기 때문이라고 생각된다. 이 힘이라는 것을 신앙으로 볼 수도 있고, 학문으로 볼 수도 있고, 도라고 볼 수도 있으며, 명상으로 볼 수도 있을 것이다. 중요한 점은, 삶을 살아가는데 이어서 인간으로서 아름답게 세상을 살아가기 위해서 필요한 하나의 요소라는 것이다.

 


 

“지금 당장 우리가 주의를 기울이고 있는 것이 바로 현실이다”라고 말했다… 이건 은유가 아니다. 사실이다…. 관심의 질이 삶의 질을 결정한다. 어디에 관심을 기울이기로 결정했느냐, 더 중요하게는 ‘어떻게’ 관심을 기울이느냐가 곧 그 사람을 보여준다.(222)”

    마지막은 관심에 대한 내용이다. 관심은 중요하다… 미국의 철학자 윌리엄 제임스는 “지금 당장 우리가 주의를 기울이고 있는 것이 바로 현실이다”라고 말했다… 이건 은유가 아니다. 사실이다…. 관심의 질이 삶의 질을 결정한다. 어디에 관심을 기울이기로 결정했느냐, 더 중요하게는 ‘어떻게’ 관심을 기울이느냐가 곧 그 사람을 보여준다.(222)”는 매우 중요하고 마음에 확 와닿는 이야기이다. 당장 나의 경험으로 미루어봐도 이 이야기를 공감이 되는 내용이다. 예를 들어 취업 준비를 위해서 cv 혹은 자소서를 쓰는 과정에서도 이 내용이 통용된다는 것을 볼 수 있다. 사람을 뽑기 위해서 그 사람을 알아야 한다. 그래서 많은 질문들, 혹은 포트폴리오에는 그 사람의 관심이 나타나 있고, 그 관심에 따른 행동이나 결과를 보면서 그 사람이 어떻게 살아왔는지를 어렴풋이 알게 해 준다. 그리고 그 “사람”에 대해서 알게 됨으로써 회사에 적합한 사람인지를 뽑는 과정이 바로 서류심사와 면접일 것이라고 생각된다. 이러한 취업 이야기에서 벗어나서 우리의 일상생활에서도 찾아볼 수 있다. 우리는 어떤 부분에 대해서 관심을 가지는지에 따라서 우리가 어떻게 행동하는지가 결정된다. 행동을 하는 우선순위에 있어서도, 우리가 특정 행동을 함으로써 가지는 행복에 있어서도, 결국 우리의 관심도에 직접적인 연관이 있다. 너무나 당연한 이야기이다. 하지만 이렇게 막상 언급을 하니 스스로에 대해서 돌아보게 된다. 내가 하는 행동들의 인과에 대해서, 내가 하는 행동들이 어떠한 관심에서 비롯되었는지 돌아보게 된다.

 



    3가지의 내용만을 가져왔음에도 불구하고 많은 이야기를 할 수 있다. 이렇듯 이 책에서 자신에게 의미 있는 내용 한 가지만 얻기만 해도 이미 이 책의 목적은 완수한 것이 아닐까라는 생각이 개인적으로 든다. 책에서는 우리가 일상생활로부터 철학적 접근을 통해서 삶에 대한 탐구를 하도록 유도한다. 가끔은 이런 것이 좋다~라는 방식으로 강요하는 느낌의 글로서 다가올 수도 있다는 생각이 들고, 아무래도 철학이다 보니 조금은 강한 표현들이 있어서 거부감이 들 수 있는 부분들이 있다고 생각된다. 하지만 이 거부반응 때문에 책을 놓지 않았으면 한다. 과거에서부터 이어온 하나의 역사로서 받아들이기도 하고, 위대한 사람들의 하나의 삶의 방식으로 받아들이기도 하면서, 자신이 가지고 세상 혹은 시각에서 조금 더 개안을 할 수 있는 형태로 받아들이면 되지 않을까 싶다. 그리고 그렇게 함으로써 철학에 대한 매력을 느껴볼 수 있을 것이라고 생각된다.

 


 

도서 구매: http://www.yes24.com/Product/Goods/101317041

 

소크라테스 익스프레스 - YES24

“인생에서 길을 잃는 수많은 순간마다?이 철학자들의 목소리가 들려올 것이다”[뉴욕타임스] 베스트셀러 작가 에릭 와이너와 함께 떠나는 철학자행 특급 열차! 2020 아마존 베스트 논픽션, 2020 N

www.yes24.com

 


1번 방법: combination함수

우선 상당히 복잡하게 푼 방법부터 보이자면 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from itertools import combinations
 
N, M = map(int, input().split())
num = list(map(int, input().split()))
sums = []
ans = [0]
subPrev = 9999999
# print(list(combinations(num, 3)))
combis = list(combinations(num, 3))
for i in range(len(combis)):
    sums.append(sum(combis[i]))
    # print(sums)
    if sums[i] <= M:
        sub = abs(M - sums[i])
        if subPrev >= sub:
            subPrev = sub
            ans.pop()
            ans.append(sums[i])
            # print(ans)
        else:
            pass
print(ans[0])
 
cs

 

from itertools import combinations 라는 코드를 먼저 아는 것이 중요하다.

combinations 즉, 조합을 알아서 찾아주는 모듈이라고 보면 된다.

사용 방법은 combis = list(combinations(num3))  처럼 조합들을 넣고 싶은 변수 list 형태로 num의 리스트를 몇 개씩(이 코드에서는 3개씩) 조합하여 결과를 만들어내는 것이다.

 

따라서, 위의 방법으로 조합을 먼저 생성해내고, 

조합의 갯수만큼 for문을 돌면서,

각 조합에 대한 합을 sums라는 리스트에 append시킨다.

그러면서 문제의 조건인 "합이 M을 넘어서는 안된다" 라는 조건은 if문에 주고,

조건이 부합하면, M과 합의 차를 절댓값으로 구함으로써, 그 차이가 가장 작은 수 (=M과 가장 가까운 수)를 구한다.

(이때, "M을 넘지 않는다" 라는 조건은 M을 포함하여 넘지 않는다고 해석해서 if sums[i] <= M: 로 처리해야한다.... 이 부분 때문에 몇 번이나 틀렸다...)

 


2번 방법: 3중 for문

아래와 같은 코드로 짜면 시간도 훨씬 짧게 들이면서 간단하게 풀 수 있게 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
n, m = map(int, input().split())
num = list(map(int, input().split()))
= len(num)
ans = 0
for i in range(0, l-2):
    for j in range(i+1, l-1):
        for k in range(j+1, l):
            if(num[i] + num[j] + num[k] > m):
                continue
            else:
                ans = max(ans ,num[i] + num[j] + num[k])
 
print(ans)
cs

인터넷 검색을 하면서 3중 for문을 통해서 구할 수 있게 된다는 것을 알게 되었다...

브루트포스(bruteforce)의 알고리즘 사용으로써, 모든 경우의 수를 구한 것이다.

코딩테스트를 보게 되면 1분 1초가 소중하기 때무에 이런 형태로 최대한 빠르게 풀 수 있는 코드를 계속 보고 익혀두는 것이 좋을 듯 하다.

 

 

문제 출처: https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

 

https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/changing-the-default-branch

 

Changing the default branch - GitHub Docs

If you have more than one branch in your repository, you can configure any branch as the default branch.

docs.github.com

 


이 상황이 발생하는 이유 자체는 아래와 같은 화면 때문이다.

잘 읽어보면 'main'을 default branch로 세팅한다고 되어있다.

 

이걸 미리 발견했다면, 위의 사진에서 표시한 것처럼 "settings"를 눌러서 아래와 같이 main을 master로 바꿔주기만 하면 된다.

그렇게 되면 이제 새로 respository를 만들 때 default branch를 master라는 이름으로 생성하게 된다.

master로 사전에 default branch를 바꾸면 된다.

 


 

문제는 저걸 지나치고 실수로 main이라는 이름으로 default branch를 생성했을 때다. 

이럴 때는 맨 위에 있는 링크를 참조하면 된다.

요약하자면, 만들어진 repository에서 "settings" --> "Branches" --> "연필 모양" --> 이름 수정 --> "Rename branch" --> 끝!

settings를 클릭


Branches 클릭 --> 연필모양 클릭


default branch의 이름을 master로 바꾼다 --> Remove branch 클릭


곧 바뀐다는 메시지가 뜬다.

 

 

생각보다 바꾸기 매우 쉽기 때문에 당황하지 말자

(왕초보 및 입문자의 경우 조금이라도 다른 부분은 당황하기 쉬우니까!)

최근 팀프로젝트를 하면서 git과 github를 사용하게 되었는데, 제대로 사용을 하지 못해서 이렇게 정리를 하게 되었다.

 

일단 상황적으로, 다른 팀원의 github respository에 내가 사용할 branch를 생성하는 작업이다.

사용하는 개발환경을 Visual Studio Code이이다. 

 


1. 내 컴퓨터에서 github repository를 clone할 해당 폴더의 경로로 가서 gitbash를 통해 Visual Studio Code(VSC)를 code . 로 연다.

폴더가 없다면, 폴더를 생성해주면 되겠다.

 

1-1. 폴더 생성
1-2. gitbash에서 code . 를 치고 Visual Studio code와 연결

 

2. Visual Studio Code를 열었다면, 이제 terminal을 열어주자

Visual Studio Code의 terminal 창 열기

 

3. 이제 github에서 원하는 repository에서 git clone [http~]를 통해서 github라는 '원격저장소'에서 내 컴퓨터(=로컬저장소)로 가져온다.

github의 repository를 선택해서 https 주소를 복사 --> VSC terminal에서 실행

 

4. 이제 github repository에 새로운 branch를 생성하도록 하자.

4-1. branch를 생성하기 이전의 github 상태는 main branch가 하나만 있는 상태이다. (master branch와는 살짝 다르지만, 같은 맥락으로 일단 보도록 하자)

4-1. 나의 branch를 생성하기 이전에 repository에 어떤 branch들이 있는지 확인을 할 수 있다. 

4-2. Visual Studio Code의 terminal에서 이제 branch를 생성하도록 하자.

우선 clone을 통해 생성된 폴더의 경로로 가고(cd [해당폴더명이나 해당폴더경로]) 를 사용하자),

그 폴더에서 어떤 branch가 있는지 확인을 해본다 (git branch 를 치면 된다.) ==> 아마 master branch 하나만 있는 것을 확인할 수 있을 것이다.

4-2. git branch를 사용하면 master 하나만 있는 것을 확인할 수 있다.

 

 

4-3.

이제 git branch [새로 생성할 branch의 이름] 을 통해서 새로 branch를 만들고,

git checkout [생성한 branch의 이름]을 통해서 새로 생성한 branch를 접근하도록 처리한다.

git branch를 통해서 새로운 branch가 생겼음을 확인할 수 있고,

현재 접근하고 있는 branch도 확인할 수 있다.

4-3. git branch [새 branch 이름] --> git checkout [생성한 branch 이름]

 

5. 마지막으로 현재 branch를 github(=원격저장소)에 push를 해줌으로써 적용시키면 된다.

명령어는 git push origin [4-3에서 생성한 branch의 이름] 이다.

5. git push origin [4-3에서 생성한 branch의 이름]

 


 

요약하자면

1. gitbash에서 VSC 연결 --> code .

2. VSC내에서 terminal 열기

3. git clone [http~]

4-2. cd [해당폴더명이나 해당폴더경로] --> git branch

4-3. git branch [새로 생성할 branch의 이름]   -->  git checkout [생성한 branch의 이름]

5. git push origin [4-3에서 생성한 branch의 이름]

끝!


일단 가장 먼저 성공했던 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
days = int(input())
korean =  int(input())
maths =  int(input())
maxKorean =  int(input())
maxMaths =  int(input())
if korean % maxKorean != 0:
    koreanDays = korean // maxKorean + 1
else:
    koreanDays = korean // maxKorean
if maths % maxMaths != 0:
    mathsDays = maths // maxMaths + 1
else:
    mathsDays = maths // maxMaths
maxDays = max(koreanDays, mathsDays)
print(days - maxDays)
 
cs

if-else문을 통해서 나머지가 있고 없고에 따라서 처리를 한다.


그런데 이 방법보다 훨씬 쉬운 방법은 math 모듈을 import 해서 ceil() 함수를 사용하는 것이다.

다음과 같은 코드를 사용하면 된다.

1
2
3
4
5
6
7
8
9
10
import math
= int(input())
= int(input())
= int(input())
= int(input())
= int(input())
= math.ceil(A / C)
= math.ceil(B / D)
free = max(k, m)
print(L - free)
cs

 

 

문제 출처: https://www.acmicpc.net/problem/5532

 

5532번: 방학 숙제

한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다.

www.acmicpc.net

 

팀 프로젝트를 하다 보면 다른 사람의 github에서 코드를 clone 하거나 다운로드를 해서 사용하는 경우가 많다.

이번에도 이렇게 사용을 하던 중, React에 관해서 에러가 계속 나서 문제가 생겼던 부분이 있다.

바로 node의 버전이 안 맞아서 계속 에러가 나는 부분인데, 이 부분의 해결방법에 대해서 정리해보고자 한다 (사실 스스로도 나중에 방법을 잊어먹을까 봐 정리하는 느낌도 있다... ㅎ)

 

일단 에러 코드는 다음과 같이 나타났을 때의 경우이다.

(참고로 이 에러는 yarn start가 되지 않아서 yarn install을 하려고 할 때 발생하는 상황이다.)

yarn install v1.22.11
[1/4] Resolving packages...
[2/4] Fetching packages...
error jest-diff@27.1.0: The engine "node" is incompatible with this module. Expected version "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0". Got "12.6.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

 

이런 경우, node를 최신 버전으로 업데이트를 해야 하는 경우라고 볼 수 있다.

따라서, node 업데이트를 해야 하는데, 여기서 개발환경에 따라서 다른 방법이 요구된다.

 


 

1번 경우: mac을 활용하고 있다면, 다음과 같은 코드로 업데이트를 한 후 해결해보면 된다.

$ sudo npm cache clean -f # 강제캐시삭제
$ sudo npm install -g n # n 모듈 설치
$ sudo n stable # or sudo n 12.14.0 (버전명)
$ node -v # 버전 확인

사실 이 경우는 나는 사용하지 못했기 때문에 https://question0.tistory.com/40를 참조하는 것이 더 좋다고 생각된다.

 

[Node.js] 최신버전으로 업데이트 하기

Node 업데이트 $ sudo npm cache clean -f # 강제캐시삭제 $ sudo npm install -g n # n 모듈 설치 $ sudo n stable # or sudo n 12.14.0 (버전명) $ node -v # 버전 확인 Node 업데이트 오류 bash: /usr/bin/node..

question0.tistory.com

 


 

2번 경우: windows를 사용하고 있고, nvm으로 node를 다운로드하였을 경우

사실 이 경우를 정리하기 위해서 이 글을 쓰는 이유가 있다.

우선, nvm을 통해서 업데이트를 해야 하므로, 우선 version을 확인해보는 것이 좋다.

nvm --version 을 통해서 다음과 같이 version 뿐만 아니라 다양한 명령어들을 확인해본다.

nvm --version을 했을 경우


여기서 nvm install <version> [arch] 부분을 읽어보면, "latest"를 사용할 수 있다고 되어있다.

이에 따라서 nvm install latest를 사용하는 방법을 선택하면 된다.

이렇게 하면 이미 최신 업데이트가 되어있으면 다음 사진과 같이 나타날 것이고, 

그렇지 않다면 알아서 업데이트를 실행할 것이다.

최신 업데이트가 이미 되어있다는 뜻이다.


마지막으로, nvm use [version]의 명령어를 사용해서 사용하고자 하는 version으로 사용하도록 처리를 하면 된다.

nvm use 16.9.1 을 하면 된다.

 

이러고 나서 오류가 나던 yarn start를 다시 하면, 제대로 오류 없이 작동하는 것을 볼 수 있다!!!


파이썬의 경우, list를 활용해서 간단하게 해결할 수 있다.

먼저 예제의 입력을 map을 통해서 contestant변수에 잘 넣어준다.

그다음, 각각의 index에 들어있는 숫자들의 합을 구한다.

마지막으로, 숫자들의 합 중에서 가장 큰 수의 index+1(index는 0부터 시작하기 때문)을 출력하고, 해당 수를 출력해주면 된다.

1
2
3
4
5
6
contestant = []
cont_sum = []
for a in range(5):
    contestant.append(list(map(int, input().split())))
    cont_sum.append(sum(contestant[a]))
print(cont_sum.index(max(cont_sum))+1, max(cont_sum))
cs

 

 

문제 출처: https://www.acmicpc.net/problem/2953

 

2953번: 나는 요리사다

"나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5

www.acmicpc.net

4차산업혁명에 대한 관심이 높아지고, 전세계적으로 IT분야에 대한 트랜드가 널리 퍼지고 있다.

국내에서도 AI분야에 대한 관심이 높아지고, 정부차원에서 이루어지는 지원이 많아지면서 코딩캠프 또한 많이 생겨나고 있고 관심이 집중되고 있다.

이전에 AI(인공지능)과 관련한 코딩캠프들을 조금 정리해봤는데(https://gettingtoknowit.tistory.com/92),

 

4차 산업혁명의 AI(인공지능) 양성 + 5가지 AI 코딩 캠프

기사 출처: https://www.asiae.co.kr/article/2021040116360443896 [AI패권전쟁]애플 5년 간 AI기업 25곳 인수할 동안…韓 군침만 25대 3. 애플과 삼성전자가 최근 5년간 인수한 인공지능(AI) 관련 기업의 숫자다...

gettingtoknowit.tistory.com

인공지능에 대한 관심이 없더라도, 충분히 코딩에 대해서 부트캠프를 여는 곳들도 굉장히 많다.

 

기본적인 커리큘럼들은 웹/모바일에 대부분 집중이 되어있으며, 취업준비를 병행하고, 심지어 어떠한 곳들을 비용이 무료임과 동시에 활동비까지 지원받을 수 있다. 때문에, 전공자들 뿐만 아니라 비전공자들까지 많이 신청을 하고 있는 상황이다.

 

그래서 이렇게 일부 관심있는 캠프들에 대해서 정리를 해보기로 했다.

사실 필자 또한 AI 캠프들 포함 이 캠프들 중에서도 노리고 있기도 하다 ㅎㅎ

 


참고로, 2021.09.20 기준으로 작성을 했기 때문에, 추후에 있어서 일부 내용들이 각 캠프의 사정에 따라 변경될 수 있습니다.

항상 링크와 모집요강을 잘 확인해야 합니다.

아래에 정리되어있는 캠프들은 교육비가 무료인 캠프만 정리했습니다. 

 

 

1. 네이버 부스트캠프

기간: 4주+4달(약 5달)
장소: 강남
비용: 무료
커리큘럼: 웹/모바일 - 풀스택/ios (자세한 것은 링크 참조)
교육 시간: 월~금 활동

링크: https://boostcamp.connect.or.kr/

 

부스트캠프

개발자의 지속 가능한 성장을 위한 학습 커뮤니티

boostcamp.connect.or.kr

 

2. 우아한테크캠프

기간: 8-9주

장소: 우아한형제들 내 교육장

비용: 무료(활동비 150만 지급해줌)

커리큘럼: Front-end, Back-end (자세한 것은 링크 참조)

교육 시간: 월~금 활동

링크: https://techblog.woowahan.com/2724/

 

[모집] 2021우아한테크캠프 4기 | 우아한형제들 기술블로그

{{item.name}} 우아한개발자가 되고 싶은 이들을 위한 우아한테크캠프 4기를 소개합니다. 우아한테크캠프는 여름 방학기간을 활용해 진행되는 채용 연계형 교육 프로그램입니다. 교육은 사회적 상

techblog.woowahan.com

 

3. 우아한 테크코스

기간: 약 10개월

장소: 오프라인 교육장

비용: 무료

커리큘럼: Back-end와 Front-end 中 택1

교육 시간: 월, 화, 금

비고: 4개의 레벨을 모두 수료해야 최종 수료 가능

링크: https://techblog.woowahan.com/2697/

 

우아한테크코스 3기 과정에 참여할 사람을 모집합니다. | 우아한형제들 기술블로그

{{item.name}} 우아한테크코스 3기를 모집합니다. 1기 모집 글을 쓸 때가 엊그제 같은데 벌써 3기 모집 글을 쓰네요. 2020년은 코로나19 때문에 2기 교육 과정을 운영하는데 많은 어려움이 있었는데요.

techblog.woowahan.com

 

4. SSAFY 삼성청년SW아카데미

기간: 1년 (중간에 취업으로 중단하기도 함)
장소: 서울, 대전, 구미, 광주 中 택1
비용: 무료(매달 100만원 지원)
커리큘럼: 비전공자/전공자에 따라 다름 (자세한 것은 링크 참조)
교육 시간: 매일 활동
링크: https://www.ssafy.com/ksp/jsp/swp/swpMain.jsp

 

삼성 청년 SW 아카데미

삼성 청년 SW 아카데미| 소프트웨어 교육, 취업 지원, 코딩 교육

www.ssafy.com

 

5. 서울42 이노베이션아카데미

기간: 5개월~23개월

장소: 개포, 서초

비용: 무료(매달 100만원 지원)

커리큘럼: 주요주제들에 대해서 다음 사진과 같이 소개되어있다 (자세한 것은 링크 참조)

교육 시간: 매일 활동

링크: https://42seoul.kr/seoul42/main/view

 

42 서울

(재)이노베이션 아카데미의 소프트웨어 개발자 양성 프로그램입니다. 교수, 교재, 학비가 없는 3무 교육 프로그램

42seoul.kr

 


추가로 알아야 할 사항은 거의 모든 캠프들은 서류전형, 1차시험, 2차시험이 존재한다.

코딩테스트는 기본이고, 2차시험에서 면접인 곳도 있고, 심화 코딩테스트인 곳도 있다.

혹은 기초 수리/논술에 대한 논리적 사고를 시험하는 곳도 있다.

최근에 코딩캠프들이 잘 알려지고 있는 만큼 경쟁률도 날이 갈수록 매우 쎄지고 있는 실정이다. 정말로 코딩캠프에 들어가고 싶다면 어느정도 준비를 할 필요가 있다고 생각된다.


벌집의 숫자가 어떻게 늘어났을 경우, 경로가 1씩 늘어나는지 알기만 하면 간단하다.

1을 기준으로 봤을 때, 각 경로가 1씩 늘어나는 기점(=최댓값)이 1 - 7 - 19 - 37 - 61 --- 로 증가한다.

그리고 이 사이의 숫자는 6 - 12 - 18 --- 6의 배수로 증가한다.

따라서, 다음과 같이 코드를 짜면 간단히 해결된다.

1
2
3
4
5
6
7
8
9
10
11
num = int(input())
= 0
prevNum = 1
while True:
    if num > prevNum + 6 * i:
        prevNum += 6 * i
        i += 1
    else:
        print(1 + i)
        break
 
cs

 

문제 출처: https://www.acmicpc.net/problem/2292

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌

www.acmicpc.net

+ Recent posts