Yeon's 개발블로그

지식을 전파하는 개발자가 되고싶습니다.

분류 전체보기 83

2021년 구글 정규직 전환형 코딩테스트 후기

(2021.05.01) 2021년 구글 SWE(Software Engineering Intern) 코딩테스트를 보고왔습니다! 결과적으로 말하면 이번 구글 코딩테스트는 합격해서 면접을 준비중입니다. 진행방식은 4월 30일부터 5월 1일중에 참가자 자신이 원하는 시간대에 1시간을 할애해서 풀면 되는 방식으로 테스트가 진행되었습니다. 크롬으로 접속해야하며 다른 탭을 열거나, 테스트를 진행중인 창을 끄면 그대로 풀던 코드가 제출되는 제한사항이 있었고, 따로 카메라를 설치해야하거나 IDE사용이 불가능한 엄격한 시험환경은 아니였습니다! 사실 핸드폰이나 아이패드를 이용해서 구글링을 할 수 도있겠지만, 1시간동안 2문제를 풀어야하기 때문에 그럴시간이 없었습니다. 제가 느낀 난이도는 중, 상 정도..? 라고 볼수 있을 ..

[c++] 백준 15652: N과 M(4)

1) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 2) 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 3) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 4) 해결방법 전체적인 코드 구조는 백준 15649번의 N과 M 두번째 문제와 비슷하..

Algorithms/BFS DFS 2021.04.30

[c++] 백준 15651: N과 M(3)

1) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 2) 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 3) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 4) 해결방법 전체적인 코드 구조는 백준 15649번의 N과 M 첫번째 문제와 비슷하다. 아직 첫번째 문제를 풀지 않았다면, 그 문제부터 푸는 것을 추천한다. 2021.04.30 - [백준 문제풀이/Backtracking] -..

Algorithms/BFS DFS 2021.04.30

[c++] 백준 15650: N과 M(2)

1) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 2) 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 3) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 4) 해결방법 전체적인 코드 구조는 백준 15649번의 N과 M 첫번째 문제와 비슷하다. 아직 첫번째 문제를 풀지 않았다면, 그 문제부터 푸는 것을 추천한다. 2021.04.30 - [백준 문제풀이/Backtrack..

Algorithms/BFS DFS 2021.04.30

[c++] 백준 15649: N과 M

1) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 2) 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 3) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 4) 해결방법 DFS와 backtracking을 이용하여 푸는 문제이다. n개의 숫자를 'DFS를 통해 완전탐색'하되, 만약 m개의 숫자가 선정되었으면, 'backtracking을 이용하여 그 전의 성공단계'로 돌아와야한다. arr 배열에 m개의 숫..

Algorithms/BFS DFS 2021.04.30

2021년 네이버 상반기 공채 코딩테스트 후기

(2021.04.24) 2021년 상반기 공채 코딩테스트를 보고 왔습니다..! 토요일 2시부터 4시까지 총 120분동안 4문제를 풀었습니다. 구글링, IDE사용 안되고, 듀얼모니터도 사용안되는 꽤나 엄격한(?) 분위기에서 코딩테스트를 봤네요..ㅎ 시험툴은 프로그래머스를 이용했고, 감독관의 지시사항은 알림으로 떠요! 핸드폰으로 자리를 비추게 되어있어서 감독관이 실시간으로 저를 볼 수 있는 환경이었습니다! 저는 듀얼모니터 전원을 꺼놓고 대기를 하고있었는데, 따로 천으로 모니터를 덮어달라는 지시를 받아서 급하게 담요로 덮었네요..ㅎㅎ 개인적으로 난이도는 하, 중, 중, 상 정도..? 프로그래머스랑 비교하자면 레벨 2~3정도에 해당하는 문제들이였던 것 같습니다. 어떤 문제가 나왔는지 상세하게 공개할 수가 없어서..

16. MapReduce Framework

++Mapper Class++ 1. map method 1-1) void run(Mapper.Context context): mapper클래스의 전체 구동함수에 해당하며 이 메소드를 override할일은 거의없다. MapReduce 프레임워크에서 Mapper클래스의 객체를 만들고 주어진 입력파일을 레코드의 집합으로 만든다음, 각 레코드들을 Mapper클래스 객체의 run메소드의 입력으로 넣어준다. void run(Mapper.Context context) throws IOException, InterruptedException{ setup(context); while(context.nextkeyValue()){ map(context.getCurrentkey(),context.getCurrentValue(..

Cloud Computing 2020.12.09

15. MapReduce Program의 구조

1. MapReduce 프로그램의 구조 public class ExampleClass{ //inner class로, 부모클래스의 인스턴스가 없어도 인스턴스 생성이 가능하도록 static으로 정의 public static vlass MyMapper extends Mapper{ K2 k2= new K2(); V2 v2=new V2(); public void map (K1 key, V1 value, Context context){ //body context.write(k2,v2); } } public static class MyReducer extends Reducer{ K3 k3=new K3(); V3 v3=new V3(); public void reduce(K2 key, Iterable values, Co..

Cloud Computing 2020.12.09

14. 병렬분산 처리 시스템: HADOOP이란?

*HADOOP이란? 안정적이고 확장가능한 분산 컴퓨팅을 하기 위한 오픈소스 소프트웨어이다. 하둡 소프트웨어 라이브러리는 프레임워크이고, 클러스터 상에 분산 저장되어있는 대용량 데이터셋을 대상으로 분산처리를 가능하게 한다. 단일서버나 수천대의 컴퓨터로 구성된 클러스터 상에도 실행이 가능하고, 클러스터내의 각 컴퓨터에서 로컬 컴퓨팅과 스토리지 기능을 제공한다. 고품질 하드웨어를 사용하는 것이 아니기 때문에 고가용성을 보장하고, 응용레이어에서 자체적으로 오류를 감지하고 해결하도록 라이브러리가 설계되어있다. 하둡은 HDFS에 데이터를 저장하고, YARN으로 리소스를 관리하고 MapReduce로 데이터를 처리한다. -개발배경: Google에서 모든 데이터를 대상으로 검색엔진을 제공하려는 목적에서 기존의 저장체계와..

Cloud Computing 2020.12.09

13. 공유메모리 프로그래밍-OpenMP

OpenMP란? 공유메모리 환경에서 사용하는 directive-based API로, 프로그래머가 순차 프로그램을 점진적으로 병렬해갈수 있도록 하기위해 설계되었다. 프로그래머가 병렬화 가능한 코드블록을 지정해 놓으면, 그것을 참고로 하여 병렬화는 컴파일러와 런타임 시스템이 결정하고 처리한다. #pragma opm parallel num_thread(thread_count): 코드 블록을 실행할 쓰레드 개수를 프로그래머가 명시할 때 쓰이는 명령어이다. 하지만 생성하고자 하는 쓰레드 개수를 프로그래머가 프로그램에 명시한다고해도, 시스템은 생성할 수 있는 정도만 생성하고, thread_count만큼 쓰레드를 생성해주지 않을 수도 있다. 요즘 OpenMP는 일반적으로 수천개의 쓰레드까진 생성해준다. implici..

Cloud Computing 2020.12.09