농심엔지니어링 최종 면접 다녀온 다음 날... 대전 자취방에서 인천 본가로 왔더니 넘나 쳐진다... 그래도 동생 컴으로 수업듣고 바로 알고리즘 한 문제 풀어본다!! 알고리즘 스터디에서 출제된 석유시추!!! 1. 출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀어본 소감은 문제 자체는 쉬운데, 효율성 따지면서 풀기에는 생각하는 문제다... 2. 설계 오답 설계 혹시 틀려서 이 블로그까지 오신 분... 이렇게 풀지 않으셨나요? 1) 오일 영역 구분 -> BFS로 영역마다 갯수세기 2) 열마다 돌면서 다른 영역과 마주할 때마다 오일 갯수 갱신 설계 상으로..
간만에 스터디 DP 문제를 풀어보았습니다. 역시 DP... 익숙치 않다보니 어렵게 느껴졌습니다 ㅠㅠ 기록하며 한 번 더 풀어보는 시간을 갖겠습니다! 1. 출처 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 누가봐도 DP 문제라고 알려주는 시간 제한... 2. 설계 사실 다른 블로그 해석을 봐도 한 번에 와닿지는 않았습니다. 이해하는 데 시간이 걸렸어요. 다들 설계는 2중 배열로 한 것 같은데 왜 1차원 배열로 점화식을 냈지? 의문이었죠... 그리하여 제가 이해한 과정을 기록해봅니다... 1) n개의 동전을 c..
1. 출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오늘은 지연이가 풀라고 추천해준 구명 보트 문제를 풀었다. 마침 최근에 투포인터를 공부해서 이걸 이용해 풀었다. 2. 설계 설계는 간단하다. [70, 50, 80, 50] 100 3 이런 예제가 있다고 가정하자. 1) 사람들의 몸무게를 sort한다. Arrays.sort(people) 그럼 [50, 50, 70, 80] 이렇게 될 것이다. 2) 투포인터를 이용하자 start 포인터는 0번 인덱스부터 시작하고, end 포인터는 length-1 위치부터 시작한다. if) people[start] + p..
안녕하세요 SSAFYicial 신산하입니다. 자율 프로젝트도 모두 끝나고, 포트폴리오 위크를 진행하고 있습니다 : ) 포트폴리오를 작성하고, 담당 프로님과 어떤 면접 질문이 나올 것 같은지 이야기해보는 시간을 가졌는데요. 그동안은 프로젝트를 하기에 급급해서 제가 프로젝트에 적용했던 기술을 제대로 이해하지 못한 것들이 많았습니다 ㅠㅠ 그래서 마지막 기획 기사로는 프론트엔드 개발자가 접했던 기술들에 대해 써보는 시간을 가져보려 합니다! 1. R3F 최적화 제가 들었던 질문 중에는 "3D 웹페이지의 로딩 시간이 오래 걸리는데, 어떻게 기술적으로 해결하였는지 궁금합니다. "가 있었습니다. 저희 서비스가 로딩이 많이 걸렸던 이유는 gltf, 3D texture의 이미지 업로드 시간이 오래걸려 오브젝트가 많을수록 ..
안녕하세요 SSAFYicial 9기 신산하입니다! 마지막 자율 기사입니다... 시간이 왜이리 빠른지 벌써 마지막 프로젝트가 끝났네요... 싸밥 못잃어 ㅠㅠ 자율 회고를 진행해보도록 하겠습니다. 1. 취업 이슈 거기 자네 취업 준비로 바쁠 것 같나? 사실 자율 때는 면접 준비로 바쁠 것 같았지만, 놀랍게도 서류 합격률은 20% !!!... 저는 생각보다 널널해져서 프로젝트에 절로 집중을 하게 되었습니다 ㅎㅎ... 하지만 예상과는 달리 합격률이 너무 높아 면접 이슈로 프로젝트에 제대로 참여할 수 없는 팀원이 생기기 마련입니다. SSAFY는 취업이 1순위이기 때문에 너무 존중하지만, 가끔 프로젝트를 할 때 인력이 간절할 때가 있습니다 ㅠㅠ 때문에 프로젝트에 집중할 분들은 팀원을 구할 때 취업 준비에 집중할 것..
1. 출처 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 이 문제는 내 머릿속으로는 너무 복잡하게 설계가 되어서 30분 정도 삽질하다가 결국 설계안을 찾아봤다. 똑똑한 설계안이 있어서 나는 그 설계안을 이해하고, 내 코드로 만들었다. 오늘부터는 BufferedReader를 사용해 입력을 받아 시간을 줄여볼 예정이다. 2. 설계 결국 가장 높은 합을 가져야 하는건데... 가장 높은 합 즉, 값을 가지려면 큰 자릿수에 있는 알파벳에 높은 수가 매칭되어야한다. 아이디어는 알고나면 간단하다. 하나에 알파벳에 ..
오늘은 수들의 합2에서 맞닥뜨린 투포인터 알고리즘에 대해 기록해보고자 한다. 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 1. 투포인터는 어디에 쓰일까? 투포인터가 쓰이는 대표적인 예제로는 [특정한 합을 가지는 부분 연속 수열]을 찾을 때이다. 나는 슬라이딩 윈도우랑 쓰임새가 많이 헷갈렸다. 두 알고리즘의 차이는 투포인터는 구간의 너비가 조건에 따라 유동적으로 변하고, 슬라이딩 윈도우는 구간의 너비가 고정되어 있다는 것이다. 수들의 합2 문제는 고정된 구간의 너비를..
문제가 넘나 헷갈렸던 문제... 이 문제에 얼마나 시간을 쓴건지... ㅠㅠ 1. 출처 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (1 ≤ N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 www.acmicpc.net 2. 설계 간단하다. 일단 나는 우선순위큐를 써서 프랫을 높은 순으로 정렬해줬다. 정렬의 경우 Comparable을 이용했다. public static class Node implements Comparable{ int line; int flat; public Node(int line, int flat){ this.line = line;..