목록전체보기 (232)
거인의 코딩일지
널 병합 연산자 (??) 는 왼쪽 피연산자가 null 또는 undefined일 때 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자이다. 이는 왼쪽 피연산자가 null 또는 undefined 뿐만 아니라 falsy(거짓같은 값) 값에 해당할 경우 오른쪽 피연산자를 반환하는 논리 연산자 OR (||)와는 대조된다. 다시 말해 만약 어떤 변수 foo에게 falsy값( '' 또는 0)을 포함한 값을 제공하기 위해 ||을 사용하는 것을 고려했다면 예기치 않는 동작이 발생할 수 있다. Optional chaining 연산자 (?.) 와의 관계? 널 병합 연산자는 명확한 값으로 null 또는 undefined 를 처리하고 Optional chaining 연산자는 null or nude..
의사코드란?? 의사 코드란 알고리즘 로직에 집중할 수 있도록 알고리즘을 묘사하는 정형화된 언어이다. 의사코드는 완벽을 요구하는데소스코드 한줄 한줄 대입 되기 위해 전체적인 로직을 설명해 주어야 한다. 즉!! 컴퓨터가 수행해야 할 코드를 인간의 언어로 간략히 설명해 놓은 코드이다. 의사코드의 목적!? 의사코드를 보면 코드를 짠 사람의 의도를 알 수 있기에 디버깅 하거나 수정해야 할 때 도움을 줄 수 있다. 알고리즘이 어떻게 실행되고 결과가 어떻게 나오는지 보여줌 나중에 발생할 도류 버그 등을 의사코드 작성단계 에서 미리 수정이 가능 협업 할 때 프로그램의 문제를 해결하기 위한 도구로서 프로그램의 흐름에 대해 의견을 나누기 위한 하나의 방법으로 쓰이기도 한다. 설계의 기초단계로 프로그램을 이해하기가 쉽다. ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/N8jiP/btsqD6BMID0/y7HLVJkie6GlVHtzucKw2k/img.png)
Java 에서 String 클래스는 불변성을 가지고 있다. 그래서 변하지 않는 문자열을 자주 사용하는 경우에는 좋은 성능을 기대 할 수 있지만! 문자열에 대한 변경이 자주 일어나는 프로그램에서 String 만 사용하게된다면 효율적인 성능을 기대하기 어렵다. 문자열에 대한 변경이 자주 일어나는 프로그램에서는 StringBuilder, StringBuffer 을 사용하여 효율적인 성능을 보일 수 있다. String VS StringBuilder && StringBuffer Java에서 String 객체는 한번 값이 할당 되면 그 공간은 변하지 않는다. 하지만 StringBuilder 이나 StringBuffer 객체는 한번 값이 할당 되면 할당 된 공간이 변하는 특성을 가지고 있다. 여기서 할당된 공간이 변..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b5FFiT/btsqLvzNdpL/Ikwr0B9UhwrpB9Qsnu2wu0/img.png)
class Solution { public String solution(String X, String Y) { StringBuilder answer = new StringBuilder(); int [] xArr = new int [10]; int [] yArr = new int [10]; for(int i = 0; i = 0; i--){ for(int j =0; j
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/9haQW/btsqDd8uXEu/mEJi1sGLdwuPqBTru8JaXK/img.png)
class Solution { public int solution(int[] number) { int answer = 0; for(int i = 0; i < number.length; i++){ for(int j = i+1; j< number.length; j++){ for(int k = j+1; k< number.length; k++){ if(number[i]+number[j]+number[k]==0){ answer++; } } } } return answer; } } 학생들은 각각의 정수번호를 가지고 있다. 3명의 학생의 정수 번호를 합쳐서 0 이라면 삼총사 결성! 그러면 배열에서 3개의 정수를 뽑아와서 더해주고, 0일때 result 를 ++ for반복문 3개를 통해 배열에 접근 그 뒤 마지막 for..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/csJpLB/btsqJFvO3RK/zEz2CMPAAhymbAKLvkRlN0/img.png)
class Solution { public int solution(int n, int m, int[] section) { int start = section[0]; int answer = 1; for(int i = 1; i < section.length; i++) { if(start + m - 1 < section[i]) { answer++; start = section[i]; } } return answer; } } 문제가 너무너무 길어서 읽고 해석하는데 시간이 많이 걸렸다! 하지만 코드는 생각보다 단순했다! start 라는 변수에 section 배열의 첫번째 값을 대입해주고 반복문을 돌려서 그 안에 if 조건문으로 answer 을 늘려준뒤 start를 초기화 해주는 것이다!
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/E0knY/btsqD5uTSki/8qR5HLRknaUnoxZaJs7Nx0/img.png)
class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; int count = 0; int z_count = 0; for(int i : lottos){ if(i == 0){ z_count++; } else { for(int j : win_nums){ if(i == j){ count++; break; } } } } answer[0] = (count+z_count) > 1 ? 7-(count+z_count) : 6; answer[1] = count > 1 ? 7-count : 6; return answer; } } 우선 문제가 너무 길었다...! 문제를 잘 읽고 우선 0을 세주고 맞은걸 카운..
Props 선언 Vue 컴포넌트는 명시적인 props 선언을 요구하는데, 이렇게 함으로써 외부에서 컴포넌트에 props 를 넘길 때 어떤 속성이 폴 스루 속성으로 처리되어야 하는지 알 수 있다.
컴포넌트 정의하기 빌드 방식을 사용할 떄 일반적으로 싱글 파일 컴포넌트 (SFC)라고 하는 .vue 확장자를 사용하는 전용 파일에 각 Vue 컴포넌트를 정의 한다. 당신은 {{ count }} 번 클릭했습니다. 빌드 방식을 사용하지 않을 때 Vue 컴포넌트는 Vue 관련 옵션을 포함하는 일반 JavaScript 객체로 정의할 수 있다. import { ref } from 'vue' export default { setup() { const count = ref(0) return { count } }, template: ` 당신은 {{ count }} 번 클릭했습니다. ` // 또는 `template: '#my-template-element'` } 위에 형식은 옵션 api 형식의 방식이다. JavaScri..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dcK7KS/btsovV8H7px/YkSAfWmYXMKPS5ssGavoSK/img.png)
import java.util.ArrayList; import java.util.List; class Solution { public int[] solution(long n) { List list = new ArrayList(); while (n > 0) { list.add((int)(n % 10)); n /= 10; } int[] answer = new int[list.size()]; for (int i = 0; i < list.size(); i++) { answer[i] = list.get(i); } return answer; } } n이 0이 될 때까지 10으로 나누어 가면서 각 자리의 숫자를 구해준 다음 그 다음 list 를 배열로 변환하여 리턴해주었다!!! 오랜만에 알고리즘 테스트...! 오랜만..