이진트리 순회 (깊이우선탐색)
개념확인 위 트리를 전위순회방식으로 출력해보세요! 더보기 1 2 4 5 3 6 7 function solution(n) { let answer = ""; function DFS(v) { if (v > 7) return; else { console.log(v); DFS(v * 2); DFS(v * 2 + 1); } } DFS(n); return answer; } console.log(solution(1)); 위 트리를 중위순회방식으로 출력해보세요! 더보기 4 2 5 1 6 3 7 function solution(n) { let answer = ""; function DFS(v) { if (v > 7) return; else { DFS(v * 2); console.log(v); DFS(v * 2 + 1); ..
[코테강의/JS] 이진수 출력
배운점 자바스크립트에서 몫을 출력하기 위해서는 다음과 같이 parseInt 를 사용한다. parseInt(n / 2) 문제풀이 function solution(n) { let answer = ""; const dfs = (n) => { if (n === 0) { return; } else { dfs(parseInt(n / 2)); console.log(n % 2); } }; dfs(n); return answer; } solution(11);
[코테강의/JS] 재귀함수와 스택프레임
function solution(n) { function DFS(L) { if (L == 0) return; else { DFS(L - 1); console.log(L); } } DFS(n); } solution(3); //1 //2 //3 function solution(n) { function DFS(L) { if (L == 0) return; else { console.log(L); DFS(L - 1); } } DFS(n); } solution(3); //3 //2 //1 두 코드에서 else 문을 보면 콘솔로그와 DFS 함수의 위치만 바뀌었을뿐인데 출력결과가 반대로 나온다. 그 이유가 뭘까? 첫번째 코드의 스택프레임이다. 따라서 그려보면 왜 그렇게 동작하는지 이해할 수 있었다. 스택프레임은 매개변..
[백준/JS] 20436 ZOAC 3
문제링크 20436번: ZOAC 3 첫 번째 줄에는 두 알파벳 소문자 sL, sR이 주어진다. sL, sR은 각각 왼손 검지손가락, 오른손 검지손가락의 처음 위치이다. 그 다음 줄에는 알파벳 소문자로 구성된 문자열이 주어진다. 문자열의 www.acmicpc.net 배운점 자바스크립트에서 ["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"] 의 배열에서 w 문자가 몇번째 인덱스인지 알려면 어떻게 해야할까요? 더보기 let keyboard = [ ["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"], ["a", "s", "d", "f", "g", "h", "j", "k", "l"], ["z", "x", "c", "v", "b", "n..
자바스크립트 여러개의 값 반환하기
참고자료 https://bamtory29.tistory.com/entry/Javascript-%ED%95%A8%EC%88%98%EC%97%90%EC%84%9C-%EC%97%AC%EB%9F%AC-%EA%B0%92-%EB%B0%98%ED%99%98%ED%95%98%EA%B8%B0 [Javascript] 함수에서 여러 값 반환하기 함수에서 반환값이 하나만 나온다고 했었는데 사용하다보면 여러 값을 반환하고 싶은 경우가 생깁니다. 1. 여러 값 반환하기 return명령은 함수에서 값을 반환하지만 복수의 값을 반환할 수는 없 bamtory29.tistory.com 이 글은 위 블로그 자료을 타이핑하며 공부한 글입니다. 자세한 내용은 위 자료를 참고해주세요. 1. 여러 값 반환하기 return 명령은 함수에서 값을 ..
if문 중첩에 관한 고찰
2022.07.06 - [공부기록/자바스크립트 코딩테스트] - [백준/JS] 2753 윤년 [백준/JS] 2753 윤년 문제링크 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 20 ehddud100677.tistory.com 윤년 문제를 풀다가 if 문이 중첩되는 형태에 대해 고민해봤다. if 문이 중첩이 되는 저러한 형태가 보기 좋지않다고 생각이 되었기 때문이다. if (input % 4 === 0) { if (input % 100 === 0) { if (input % 400 === 0) { console.log(1); } else { console.l..
[백준/JS] 2753 윤년
문제링크 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 문제풀이 const fs = require("fs"); BOJkey = 0; let input = fs .readFileSync(BOJkey ? "./자바스크립트로/2753/input.txt" : "./dev/stdin") .toString() .trim(); input = +input; if (input % 4 === 0) { if (input % 100 === 0) { if (input % 400 === 0) { console.log(1);..
[백준/Python] 1655 가운데를 말해요
문제링크 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 문제풀이 2022.07.04 - [공부기록/자바스크립트 코딩테스트] - [백준/Python] 2696번 중앙값 구하기 [백준/Python] 2696번 중앙값 구하기 문제링크 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터 ehddud100677.tistory.com 어제 ..
[백준/Python] 2075번 N번째 큰수
문제링크 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 문제이해 이 문제 도대체 무슨 소리를 하는거지? 문제를 이해를 하지 못했다. 나는 바보다. 문제예시를 보면 5 x 5 의 input이 들어오는데 이 수들 중에서 5번째로 큰 수를 출력하면된다. 52 - 49 - 48 - 41 - 35 순이므로 35를 출력하면 되는 것이다. 오답 처음에 모든 값을 최대힙에 넣어서 5번째 값을 출력하는 방식을 사용했는데, 메모리초과가 났다. 메모리 초과가 나올 것을 노리고 다른방법으로 풀기 원하는 문제였다. import sys i..
[백준/11286] 11286 절대값 힙
문제링크 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제풀이 파이썬에서 heapq 의 디폴트는 최소힙이므로 첫번째 원소에는 절대값으로 변환한 input을 넣어주고 첫번째 원소가 같다면 두번째 원소를 기준으로 pop이 되므로 최소값을 출력하기 위해서는 그대로 input을 넣어주면 되었습니다. import sys import heapq input = sys.stdin.readline num = int(input()) heap = [] for i in range(num) : target= ..