목록전체 글 (124)
지나공 : 지식을 나누는 공간
저번 포스팅에 이어 면접 후기를 작성하려 합니다. 저는 세 곳 중에 두 곳에 서류합격을 했고 두 번의 면접을 봤습니다. 기업 A,B로 나눌게요. A는 인성이나 협업 관련 질문 위주이고, B는 기술 질문이 주를 이뤘습니다. B에서 탈탈....털리고 왔어요. ㅎㅎ 면접관이 '면', 제가 '나' 입니다. 기억나는대로 요약해서 다시 질문을 만든거라 아래 쓴 대사 그대로 물어보신 건 아닐 수도 있어요. 대답도 마찬가지입니다. 저는 백엔드 직무 지원했어요. 하지만 인성 관련 질문이 매우 많기 때문에 다른 직무 지원자 분들께도 도움이 될 것 같습니다. A기업은 너무 자만하는 애처럼 대답한 것 같아서 걱정이 많이 됐고, B기업은 기술질문에 대답을 거의 못해서 망했다고 생각했어요. 저는 B기업이 가고 싶었는데 걱정과 달..
아주 오랜만에! 인턴십 지원 후기 포스팅으로 돌아왔습니다. 2주 간 졸업프로젝트와 면접으로 마음의 여유가 없어서... 는 뻥이고 집에 있었더니 아무것도 안하게 되더군요. ;;; 저는 이번 학기가 막학기여서 전공도 다 들었으니 pf로 위주로 채울 생각이었습니다. 그러던 중에 공고를 봤고, 관심 없는 수업으로 학점만 채울 바에 ict학점연계인턴십을 하는 게 훨씬 낫다고 생각했어요. 그래서 부랴부랴 전날에 하루종일 서류 쓰고, 코테 응시하고, 면접까지 보게 되었습니다. 실제로 합격을 하게 되어서 기업선택 및 서류, 코딩테스트 그리고 면접후기까지 작성하려고 해요. 이유는... 준비하는 동안 블로그 후기글이 정말 큰 도움이 되었기 때문입니다. ㅎㅎ 저도 누군가에게 도움이 되길 바라며 후기를 작성할게요! 1. 지원..
https://programmers.co.kr/learn/courses/30/lessons/42629 코딩테스트 연습 - 라면공장 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니�� programmers.co.kr 우선순위 큐로 max heap을 구현해서 푸는 문제입니다. 이 문제에서 헷갈렸던 점은 공급받은 날짜와 상관없이 공급받은 양을 기준으로 max heap에 넣는 게 맞는지 였어요. 먼저, date를 계산하면서 stock을 하나씩 줄여가되, 해당 date에 공급받은 양을 우선순위 큐에 넣어야 합니다. 그렇게 되면 지금 공급을 받았더라도 이전에 공급받은 양보다 적으면..
문제 출처 https://programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 문제가 매우 길어요. 여기서 문제 푸는 데 중요한 내용만 뽑으면 아래와 같습니다. (니니즈 친구들이 사람은 아니지만 편의를 위해 사람 수라고 표현했습니다. ㅎㅎ) 징검다리를 누군가 건널 때마다 해당 다리의 원소가 1 감소하고 0이 되면 건널 수 없으므로 징검다리의 각 원소 값은 그 다리를 건널 수 있는 사람의 수와 관련 있음 (매우 중요한 포인트입니다.) 우리는 결국 건널 수 있는 사람 수를 구하고 싶은 거고, stones 배열의 원소 값이 각각 1이상 200,00..
문제 출처입니다. https://programmers.co.kr/learn/courses/30/lessons/43237 코딩테스트 연습 - 예산 국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것입니다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있습니다. 그�� programmers.co.kr 구하고자 하는 건 한 지방의 예산 상한액이고, 이 예산의 범위가 1이상 100,000이하인 걸 보면 for문을 돌려 일일이 계산하는 방식이 아니라는 걸 알 수 있습니다. 따라서 효율을 위해 이분탐색을 합니다. 이분탐색 문제는 유형이 거의 비슷해요. 구하고자 하는 것의 범위를 알 때, 이분탐색을 통해 그 값 중 가장 적절한 값이 뭔지 찾는 겁니다...
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr dfs를 활용해서 풀었습니다. 빼기도 하고 더하기도 하고 이렇게 모든 경우를 다 하기 위해 재귀함수를 사용합니다. #include #include using namespace std; int ans; void dfs(vector &numbers, int target, int i, int sum)..
문제출처 : https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr dfs로 풀었습니다. 재귀함수, dfs 기본 구현에 충실한 문제였습니다. dfs, bfs에 대해서는 추후에 포스팅을 할 예정입니다. [주석 없는 코드] #include #include #include using namespace std; int ans = 50; bool check[50]; bool diff..
문제출처 : https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조�� programmers.co.kr 해시로 푸는 방식과 정렬로 푸는 방식 모두 통과됩니다. 두 코드 모두를 첨부합니다. 하지만 이 문제에서 phone_book의 길이가 1이상 1000000 이하인 것은 문제의도가 시간복잡도라는 걸 알 수 있습니다. 따라서 해시로 푸는 것을 권장합니다. 먼저 정렬 후 벡터로 푸는 코드입니다. 한 번호가 다른 번호 앞부분과 완전히 일치해야 합니다...
문제출처 : https://programmers.co.kr/learn/courses/30/lessons/42576 순서가 상관이 없으므로 unordered_map을 사용하였습니다. unordered_map은 비정렬 연관컨테이너로, 중복을 허용하지 않고 map과 달리 key를 기준으로 자동정렬하지 않습니다. unordered_map과 map, hash_map 등의 개념을 다른 포스팅으로 정리했습니다. 맨 아래에 첨부한 링크를 참고해 주세요. 이제 문제를 살펴볼게요. 마라톤 경기에 참여한 선수의 수인 participant가 있고, 그보다 1 작은 크기의 completion 벡터에는 완주한 선수가 담겨있으니, 완주하지 못한 선수는 전체에서 1명입니다. 여기서 포인트는 '마라톤 경기에 참여한 선수의 수는 1명 ..
hash_와 unordered_에 대하여 hash라는 말이 붙지 않은 map,set은 자료를 정렬해서 저장합니다. (key를 기준으로 오름차순 정렬) 따라서 순회할 때도 저장된 데이터를 넣은 순서대로가 아닌 자동정렬된 순서대로 순회합니다. hash_map과 unordered_map은 유사한 컨테이너인데 차이를 말하자면 hash_map은 비표준(namespace가 stdext)이고 unordered_map은 표준(namespace가 std)입니다. 성능도 unordered_map이 더 우월하고 표준이므로 unordered_map 사용을 권장합니다. 이제, 출력결과를 통해 비교해볼게요. 출력하면서 생각했던 의문들을 같이 적어봤습니다. 엉뚱하고 너무 당연한 의문이 많아서 민망하지만........ map 중복을..