분류 전체보기(174)
-
백준 2739 구구단
오늘은 타입스크립트로 백준 2739 번을 풀어보았다. 타스로 문제 풀이한 코드가 많이 없어서 이 풀이들이 나름의 도움이 되었으면 좋겠다. 사실 이문제, 되게 쉽다. 참구할 만한 사항은 firstline 으로 받은 입력 앞에 '+' 를 붙여 바로 숫자로 변형해 사용할 수 있었다는 것이다. 그것 외에는 문제될 것이 하나도 없었다.하하하 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePath).toString().split('\n'); //let input = fs.readFileSync(0, 'utf8').toSt..
2023.03.12 -
백준 2738 행렬 덧셈
백준 2738 행렬 덧셈 타입스크립트를 통해 2차원 배열을 만들고 이용하기 위한 연습 문제로 풀어 보았는데, 좀처럼 안되어 그냥 1차원 배열로 만들어 문제를 해결하였다. 이번에 새로 알게 된 내용을 정리하면 다음과 같다. console.log 로 한줄을 찍으면 무조건 개행이 하나 들어가기 때문에 그렇지 않은 출력 형식을 알아내야 했다. process.stdout.write(sum.toString() + ' '); 다음의 출력 형식을 사용하면 개행이 들어가지 않게 출력할 수 있는데, 대신 toStirng으로 스트링 타입으로 변환해 주어야 한다. 입력에 개행, 띄어쓰기 기준으로 마구 잘려 나가 있는 입력을 해결하기 위한 방안이 필요하다. 우선 개행을 기준으로 input.txt 를 분리해 받는다..
2023.03.12 -
백준 2475 검증수
백준 2475 검증수 오늘은 백준 검증수 문제를 풀어보았다. 이거 브론즈 단계여서 사실 익숙한 언어로 풀면 쉬운 문제인데, 그래도 타입스크립트 처음 공부하면서 급하게 문법을 익히려다 보니 문제부터 풀며 필요한것들을 정리하자는 방향을 잡게되어 쉬운문제부터 해보잔 생각이 들었다. 처음으로 배열을 써보았다. 또한, 타입스크립트에서 맨날 let, var 등 을 사용하다 자료형을 처음으로 명시도 해줘보았다. 코드를 한번 보자! const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePath).toString().split(' '..
2023.03.11 -
백준 9934 완전 이진 트리
백준 9934 완전 이진 트리 오늘은 완전 이진 트리 문제를 풀었는데, 전위,중위,후위 순회를 다시 생각해 볼 수 있는 문제 였답. 사실 처음에는 진짜 노드들 만들고 링크드리스트로 이어 붙여주는 문제인가 하고 고민했는데, 그렇게 하는게 아니었다. 중위순회였기 때문에 배열의 가운데를 기준으로 분할 정복을 해주기만 하면 되었고, 쉽게 풀었는데 자꾸 이상한 에러가 나면서 안되더라. 변수명을 floor로 주었더니 이미 선언된 변수명과 충돌하여 안된다고 해, flor 로 고쳤더니 제대로 컴파일이 되었다. 이런 실수들 조심하고 일어나지 않도록 하자!! #include #include #include #include using namespace std; vector lst; vector flor[12]; int to..
2023.03.04 -
백준 15900 나무 탈출
백준 15900 나무 탈출 이번 문제는 나무 탈출이다. 이제 좀 바쁠거 같아서 매일 아침에 한문제라도 제대로 풀기로 했다..! 문제는 dfs 였다. 사실 문제를 이해하는데 한참 걸렸다. 남들한텐 바로 이해될 거였을거 같은데, 핵심은 노드가 하나 떨어져 나가면 밑에 자식 노드들은 다른 간선이 없으면 루트로 도달할 수 가 없기 때문에 이를 고려해야 한다는 것이다. 그렇기에 간단하게 생각하면, 루트 노드에서 자식 노드로 도달하는 방법의 개수를 다 세서 홀수인지, 짝수인지만 나누면 된다ㅎ #include #include using namespace std; int visited[500002] = {0,}; vector lst[500002]; long sum = 0; void dfs(int cur, int cnt..
2023.03.03 -
백준 18126 너구리 구구
백준 18126 너구리 구구 오늘은 너구리 구구 문제를 풀었다. 알고리즘 스터디에서 분류가 트리였는데, 트리 문제를 어떤 식으로 풀어야 할 지 몰라서 그냥 DFS 로 풀었다. 맨날 풀던 DFS 문제처럼 단순하게 생각하면, 말단 리프 까지 도달했을 때의 경로의 합이 가장 큰 것을 출력하기만 하면 되는 거였다. 다 풀었는데, 계속 틀렸다고 나왔다. #include #include using namespace std; vector v[5002]; int visited[5002] = {0,}; long long max_val = 0; void dfs(int x, long long p) { for (int i = 0; i < v[x].size(); i++) { if (visited[v[x][i].first] ==..
2023.03.02