🧾알고리즘을 풀어보자
프로그래머스 / level2 / 기사단원의 무기
약수의 개수를 구해야하는 문제인데 n의 약수를 구한다고 할 때 1부터 n까지 반복문을 돌려버리면 바로 시간초과가 나버리는 문제이다.
약수의 개수를 구하는 알고리즘을 찾아봤는데 생각보다 많이 알고리즘이 존재해서 놀랐다.
나는 약수를 나눈 값도 약수라는 원리를 이용해서 풀이했다.
예를 들어서 10을 기준으로
- 1이 약수이기 때문에 1로 나눈 값인 10도 약수이다
- 2가 약수이기 때문에 2로 나눈 값인 5도 약수이다.
(제곱근이 되는 범위까지만 반복)
이 방법으로 효율성을 엄청나게 높일 수 있어서 강력 추천한다.
문제를 풀어보려면 소스코드는 확인하지 않고 먼저 풀어보자
▶ 소스코드
function getDivNum(num) {
let divisor = 0;
for(let i=1; i*i<=num; i++){
if(num % i === 0){
divisor++;
if(i*i < num){
divisor++;
}
}
}
return divisor;
}
function solution(number, limit, power) {
let answer = 0;
for(let i=1; i<=number; i++){
const divNum = getDivNum(i);
if(divNum > limit){
answer+=power;
}else{
answer+=divNum;
}
}
return answer;
}
i*i <= num의 범위에서만 반복하고
i*i < num 일때만 카운팅을 두번해주고
i*i == num(제곱근)일 때는 카운팅을 한번만 해준다.
- [효욜적인 약수 개수 구하기 알고리즘 :: 마이구미]
https://mygumi.tistory.com/122
프로그래머스 / level3 / 거스름돈
https://school.programmers.co.kr/learn/courses/30/lessons/12907
DP를 이용해야하는 문제. DP 문제를 풀어보지 않은 건 아니지만 DP문제는 항상 새롭다.
점화식이라는 방식만 동일할 뿐 그 틀은 정해져있지 않아서 그런것같다.
오래 고민했지만 잘 풀리지 않았다. 내일은 꼭 풀고 만다🤯
🦻🏻매니저님 순회 및 정보 교류
강의 목적으로 만들어진 사이트라고는 하는데 3D 표현하는 CSS도 너무 인상적이고 문서화도 미친듯이 잘되어 있어서 HTML태그나 CSS를 공부한다면 이 사이트가 너무 좋다. (우리 고마운 팀원 하은님🤗)
아이폰의 다이나믹 아일랜드 기능을 웹에서 구현하고 문서화해놓은 글. 엄청나게 멋들어진 기능이다. 애플이 해서 그런지는 모르겠는데 뭔가 근사하고 참신하다. 이 글을 보고 인터렉션 개발자에 대해서 관심이 많이 생겼다. 프론트엔드 개발자로서는 이런 것들이 참 좋다.
리액트를 새롭게 문서화시키고 있는 것 같다. 원래 있던 공식 React 사이트보다 훨씬 보기 좋게 기능별로 챕터별로 정리가 잘 되어 있는 것 같다. 빨리 완성되서 베타 딱지를 뗐으면 좋겠다.
👩🏻회사 도메인을 잘 선택하는 것도 중요해요!
매니저님의 회사는 B2B라서 데이터를 다루는 것이 주라 프론트엔드로서는 특별한 일이 많지 않아 이직을 고려중이라고 하셨다. 회사를 선택할 때 내가 좋아하는 도메인이나 프론트엔드로서 배울 것이 많은 혹은 도전할 것이 많은 도메인을 우선순위에서 고려해봐야겠다.
👩🏻신입이라면 공채도 꼭 노려보세요!
이직 준비하시면서 느낀 점은 최근에는 스타트업이 오히려 가기 더 힘들어져서 (불경기😭) 신입으로는 대기업 공채가 오히려 더 좋은 기회일 수도 있다고 말씀하셨다. 그러면서 중고 신입도 고려하고 계시다고...
항해가 끝나갈 때쯤 상반기 공채가 시작되는 시즌인데 항해중에도 놓치지않고 계속해서 신경쓰면서 지원하기 위해서 미리미리 준비해야겠다.
🤗오늘 한 일
🤼♀️언어스터디
🏹매니저님 순회
📃알고리즘 문제 풀이
👻아무말
오늘 문제를 별로 풀지 못했다. 3레벨은 역시나 3레벨이었다.
하루종일 알고리즘 문제와 싸우고 문제를 해결하지 못하니 고통스럽다.
고통스러운 만큼 성장할 수 있는거겠지
기술 매니저님들이 가만히 계시는 거는 못참지 ^^
3레벨 문제들로 매니저님들을 야무지게 괴롭혔다.
매니저님들도 나와 함께하는 시간이 즐거우셨을거라고 생각한다.
내일은 알고리즘 시험으로 알고리즘 주간이 끝나는 날인데
알고리즘 주간이 끝나더라도 내년 공채를 노리기 위해
꾸준하게 알고리즘을 준비해야겠다는 생각이 들었다.
(알고리즘 뿌숴!!!)
동시에 취업을 준비하는 것만큼이나
내가 회사를 선택할 때 나만의 기준을 잘 세워놓는 것도 중요하겠다는 생각이 들었다.
내가 회사를 볼 때 중요하게 여기는 조건은 무엇인가,
좋아하는 도메인은 무엇인가 생각해봐야겠다.
문제 풀이보다 서로 정보교류를 더 많이 한 것 같다.
하지만 너무나도 유익한 시간들이었다.
나한테 너무 필요한 시간이 아니었나 싶다.
팀원과 매니저님께 감사하다🤗
'개발일기' 카테고리의 다른 글
[TIL] 비트 주세요 (1) | 2022.11.25 |
---|---|
[TIL] 인생은 시험의 연속이다. (2) | 2022.11.24 |
[TIL] 자바스크립트를 알고리즘으로 배웠어요 (2) | 2022.11.22 |
[TIL] 행복했던 너와 이제는 안녕... (0) | 2022.11.19 |
[TIL] 자바스크립트에 시동걸기 (0) | 2022.11.19 |