전체 글

아무튼개발자되고싶어요...
· music
그래서 매일음악이란걸 새해 첫날부터 시작했는데.. 흐름을 어떻게 잡을까 하다가 비교적 최근에 그냥 재밌게 들었던 곡을 떠올려봤다. 너무 음악을 안듣고 있었나.. 아무튼 이 곡이 생각났다. 옛날예적 폴리피아 생각하면 참 많이 좋아졌다??
· music
24년부터 그냥 매일 생각나는 음악을 정리 해놔야겠다는 생각을 했다. 음악은 좋아하지만.. 나이를 먹어가니까 점점 음악을 듣지 않게된다. 그래서 겸사겸사.. 그림도 한장씩 그리면 좋겠다고 생각했다. 1월1일부터 실천해보았다. 아무튼 첫곡을 뭐로 할까.. 생각하다가 맨날 뒤늦은 후회를 하니까 같은 제목의 곡이 생각났다.. 어떤 곡들은 다시 들으면 그 곡을 즐겨 듣던 때로 이동하는 느낌이 든다. 이곡은 매번 2008년 군시절 휴가나왔을때가 생각이 난다. 강인오 기타리스트님은 검색해봐도 나오는 것도 없고 홈페이지는 마치 05년으로 돌아간것처럼 남아있던데,, 심지어 유튜브에도 영상이 거의 없다. 이 곡은 다행히? 그 당시 앨범 CD를 파일로 꺼내놨기에 아직도 들을 수 있다.. 안타깝게도 유튜브에 이 곡 영상 조..
· javascript
함수의 매개변수는 적을수록 좋다. 매개변수가 많다는 것은 함수가 여러가지 일을 한다는 증거이므로 바람직하지 않다. 이상적인 함수는 한가지 일만 해야 하며 가급적 작게 만들어야 한다. 따라서 매개변수는 최대 3개 이상을 넘지 않는 것을 권장한다. 만약 그 이상의 매개변수가 필요하다면 하나의 매개변수를 선언하고 객체를 인수로 전달하는 것이 유리하다. 모던자바스크립트 딥다이브 - 172p 함수가 외부 상태를 변경하면 상태 변화를 추적하기 어려워진다. 따라서 함수 외부 상태의 변경을 지양하는 순수 함수를 사용하는 것이 좋다. 비순수 함수는 코드의 복잡성을 증가시킨다. 비순수 함수를 최대한 줄이는 것은 부수 효과를 억제하는 것과 같다. 함수형 프로그래밍은 순수 함수와 보조 함수의 조합을 통해 외부 상태를 변경하는..
· algorithm
휴 레벨0 이걸 이렇게 풀다니 아는 메소드들인데도 생각이 안났다.. forEach forEach 는 좋지 않다고 생각했건만 아무튼 좋은 답은 function solution(s1, s2) { const intersection = s1.filter((x) => s2.includes(x)); return intersection.length; } 스프레드연산자와 set을 이용하는 독특한(?)방법도.. function solution(s1, s2) { const concat = [...s1, ...s2]; const setConcat = Array.from(new Set(concat)); return concat.length - setConcat.length; }
· algorithm
일단 나는 비전공에 학생때 문과 + 수포자 + 예체능 이었다. 등차수열 등비수열이 뭔지부터 알아야 했다... 등차수열 : 차(공차)가 같은 수가 줄지어 있는것... 첫째항에 일정한 수를 더해서 얻은 항 등비수열 : 비(공비)가 같은 수가 줄지어 있는것... 첫째항에 일정한 수를 곱해서 얻은 항 1,2,3,4,5 에서 공차는 1 1,2,4,8,16 에서 공비는 2 그렇다고 한다... 계산은 어렵지 않았다.. function solution(common) { var answer = 0; const oneTwo = common[1] - common[0]; const twoThree = common[2] - common[1]; //등차면 if(twoThree === oneTwo){ answer = common[..
· algorithm
어우 힘들었다 ㅠㅠ 어찌저찌 풀긴했는데.. 붕대감기 function solution(bandage, health, attacks) { const t = bandage[0]; const x = bandage[1]; const y = bandage[2]; let currHealth = health; let curAttack = 0; for ( const e of attacks ){ const attackTime = e[0]; const damage = e[1]; const timeDiff = attackTime - curAttack - 1; const success = Math.floor(timeDiff / t); let get = timeDiff * x + success * y; currHealth += ..
· algorithm
2시간 이것저것 헤메다가 못 풀어서 선생님 불렀다 ㅠㅠ 무슨 옹알이가 이렇게 어려워!! 주어진 배열 ["aya", "yee", "u", "maa", "wyeoo"]; ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]; 문제 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 아무튼 이런 문제인데... 정규식을 안쓰고 해볼려다가 사실 정규식 모름 처음에 작성한 답은 산으로 가서 버렸고..
· algorithm
문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings n return ["sun", "b..
· algorithm
코테를 처음 풀어봤다.. 생각보다 어려웠다 ㅜ,ㅜ 문제 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑..
· javascript
안녕하세요! JavaScript의 클로저(closure)에 대해 설명드리겠습니다. 클로저의 개념: 클로저는 JavaScript의 강력한 기능 중 하나로, 함수가 선언될 때의 렉시컬 환경(Lexical Environment)에 대한 참조를 유지하는 함수를 말합니다. 이를 통해 함수는 자신이 선언될 당시의 환경 밖에서 호출되더라도 그 환경에 접근할 수 있습니다. 클로저의 특징: 외부 함수의 변수 접근: 클로저를 통해 내부 함수는 외부 함수의 변수에 접근할 수 있습니다. 은닉화와 캡슐화: 외부에서 접근할 수 없는 private 변수를 만들 수 있습니다. 상태 유지: 함수가 호출될 때마다 새로운 환경이 생성되지 않고, 기존 환경을 유지할 수 있습니다. 클로저의 예시: function makeCounter() {..
adminisme
elseif