본문 바로가기

공부

(56)
[C/C++] 1, 2, 3 더하기 (백준 11726) 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 입력 3 4 7 10 출력 7 44 274 풀이 완전 탐색 문제... 라고 생각했습니다. 백트래킹 까지는 아니라고 생각이 들었는데 만약 1+1+2와 2+1+1을 구분하는 문제였다면 조건..
[C/C++] 2xn 타일링 (백준 11726) 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 입력 2 출력 2 입력 9 출력 55 풀이 이 문제는 저번에 풀다가 포기한 문제 중 한 문제라서... 일단 풀어보았습니다. 당시에는 기하학인가? 싶어서 조금 겁을 먹었었는데 자세히 보니 그냥 수학 문제라는 느낌이 들어서 자신감이 생겼습니다. n의 크기에 따라 들어갈 수 있는 도형의 수가 정해집니다. 그림을 한 번 그려 보았습니다. 1은 1, 2는 2, 3은 3, 4는 5, 5는 8 1 2..
[Server] 리눅스 끄적... 서버 공부는 사실상 웹 서버는 Node.js에서 공부하고 있지만 리눅스도 조금씩 끄적이고 있는데 사실 이게 공부를 하는건지 아니면 그냥 사용법을 익히는 건지는 잘모르겠다. 아무래도 OS니 몸에 익히는게 중요한 것 같긴한데... 불편해서 그렇다기 보다는 책을 따라서 뭔가를 하고는 있는데 뭔가 힘들게 했다고 생각이들어서 딱 쳐다보면 프로그램을 다운 받는 일이라던가. 어떻게 보면 윈도우의 편리함에 너무 녹아 들어서 이런생각을 가지게 되는 걸지도 모르겠다. 아무튼 Node.js는 이제 8장을 끝냈는데 지금 보는 리눅스 책도 이제 거의 반절을 끝내고 이제부터 뭔가 제대로 할 거 같아서 조금 기대가 된다. 오늘 한건 firefox 버전업이다. 물론 다른거 이것저것 더 하긴했는데 일단 사진을 찍은게 몇개 없어서 올려..
[코테 공부] 오늘 공부량 평소에 노드도 공부하고 코딩테스트도 하고 굉장히 바쁘게 보내고 있다. 오늘은 5문제를 풀었는데 DFS,BFS 2문제와 그리디 알고리즘 3문제 일 것 이다. 아마도... DFS, BFS도 마찬가지로 그림으로 그리라고 하면 아주 쉽게 그릴 수 있는데 구현을 어떻게 해야할지 몰라서 인터넷에서 코드를 보면서 나도 써보면서 문제에도 적용시켜보면서 하나하나 몸에 녹여나가는 중이다. 그리디 알고리즘은 이게 그리디 알고리즘이 맞는가??? 일단 내가 생각하기에 그리디 알고리즘 문제는 확실한 이해를 기반으로 한 꼼수(?)를 찾아내는 것 같다. 예시로 55-23+20 위와 같은 문자열이 주어졌을 때 괄호를 통해서 최소값을 구하라가 문제였다. 최소값을 구한다는 것은 빼기하는 값을 가장 크게 해버리면 되는데 위의 경우엔 55-..
[Node.js] Node.js 교과서 중간 후기 정확하게 8장까지 끝을 냈다. 일단 Do it보다는 훨씬 좋은 책이라는 느낌이 안들 수가 없다. 기본적으로 코드를 왠만하면 생략하지않고 쭉 따라갈 수 있게 만들었다. 물론 내가 어느정도 Node.js에 익숙해져서 그런걸지도 모르지만... 아무튼 좋다면 좋다고 말할 수 있다. 물론 개정 2판이라는 이미 검수를 한 책을 다시 검수한 책이고 최신판이니 더더욱 완성도는 높을 수 밖에 없지않을까 싶다.만... 백 엔드든 프론트 엔드든 내가 이때까지 배웠던 C++이나 Java 혹은 C#과의 차이가 너무나도 명확해서 그런가 사실 익숙해지는데 쉽지 않다... 일단 중간까지 왔다. 중간까지는 확실한 길라잡이였다. Node.js의 개념과 동작구조, 새로운 문법, 노드 내장 객체, 노드 내장 모듈, 예외처리, 이벤트 사용,..
[Node.js] 시퀄라이즈 (3) 이번에는 앞에서 설정한 시퀄라이즈를 토대로 CRUD를 워크벤치나 MySql에서가 아니라 노드에서 하는 코드를 따로 적어보려고 합니다. INSERT INTO nodejs.users (name, age, married, comment) VALUES ('zero', 24, 0, '자기소개1'); //MySql 쿼리 const { User } = require('../models'); User.create({ name: 'zero', age: 24, married: false, comment: '자기소개', }); //Sequelize로 대체 create함수를 사용해서 MySql에서 사용하는 INSERT INTO을 대체할수 있습니다. User가 미리 선언되어 있다는 가정하에 밑에서 코드를 적어보도록 하겠습니다...
[Node.js] 시퀄라이즈 (2) 설마 MySql에서 2개의 포스팅을 하게 될 줄은 몰랐네요 코드가 조금씩 길어지다보니 이렇게 되었지만 데이터베이스는 아주 중요하니 충분히 길게 적어도 좋을 것 같습니다. ... static associate(db) { db.User.hasMany(db.Comment, { foreignKey : 'commenter', sourceKey : 'id'}); } ... 이 코드는 User의 코드로 1 : N의 관계에서 hasMany는 1 -> N의 관계를 표현합니다. 반대로 1 comment로 들어가기 때문에 comment에 belongsTo를 달아주면 됩니다. 저장 후 npm start를 하면 로그에서 위와 같은 것을 볼 수 있는데 시퀄라이즈가 스스로 실행하는 SQL 문입니다. hasMany : 1 : M 에..
[Node.js] 시퀄라이즈 (1) 책에서 이번에는 Mysql연동에 대해서 이야기를 하던 와 중 '시퀄라이즈'라는 것이 언급되었습니다. 이전에는 C#과 같이 MySql을 사용했었지만 이번에는 node에서 사용하다보니 조금 더 쉽게 사용가능하도록 만든 거 같습니다. 일단 npm init으로 생성한 package.json을 저렇게 바꿔주었다. main과 스크립트의 start만 대충 시작해보았습니다. npx sequelize init 을 하니 갑자기 폴더가 여러개 생기면서 다운 받아지고 models의 index.js에도 상당한 양의 코드가 있었는데 불필요한 코드는 제거했습니다. const Sequelize = require('sequelize'); const env = process.env.NODE_ENV || 'development'; con..