문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 10828.py import sys command_count = int(sys.stdin.readline()) count = 0 stack_area = list() while count != command_count: count += 1 command_comment = sys.stdin.readline().split() if command_comment[0] == 'pop'..
분류 전체보기
문제 3460 https://www.acmicpc.net/problem/3460 3460번: 이진수 양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다. www.acmicpc.net 3460.py n = int(input()) for _ in range(n): a = bin(int(input()))[2:] for i in range(len(a)): if a[-i-1] == '1': print(i, end = " ")
커밋직후 발견하지 못하고 어느정도 커밋내역이 쌓였을때 미처 .gitignore하지 않아 db pw나 개인ssh키 같은 민감한 정보를 업로드 할 수 있다. repo를 다시 만드는 방법이외에 아예 특정 파일을 커밋내역에서 해당파일을 지워서 원격저장소에 다시 업로드 하는 방법이 있다. 주의! 원본파일이 삭제될 수 있으므로 해당 파일을 백업해 두는 것이 좋다. 아래 명령어를 git 디렉토리에서 입력하자 git filter-branch --tree-filter 'rm -f 파일이름' HEAD 파일이름에 폴더도 가능하다. 그리고 하위폴더에 있는 파일을 삭제하고 싶은 경우 폴더/파일이름 이렇게 해서 삭제 가능하다. 이후 원격저장소에 덮어씌우면 git push origin --force --all 파일이 커밋내역에서 ..
list.ejs 파일에 해당 코드 첨부 ajax로 서버에 delete요청을 할 때, 다음 형식으로 작성함 $.ajax({ method: 'DELETE', url : '요청할 경로', data : '요쳥과 함께 보낼 데이터' }) 끝에 .done(function(result){ }); 를 붙여서 요청이 완료되면 수행할 기능을 작성함. $.ajax({ method: 'DELETE', url : '/delete', data : {_id: 1} }).done(function(result){ }); server.js 에서도 삭제버튼을 누르면(/delete) 어떤 기능을 수행할 것인지 정의해 줘야 한다. app.delete('/delete', function(req,res){ console.log(req.body)..
MongoDB Atlas에 데이터를 저장하면 임의로 id가 부여된다. 임의로 부여된 id로 데이터를 관리하기에 불편하기 때문에 사용자가 임의로 id를 순차적으로 부여할 수 있다. database에 id갯수를 카운터 할 collection을 새로 생성한다. collection의 이름을 counter로 설정하고 다음 데이터를 추가하였다. /add 페이지에 접속하면(할일 submit수행) 서버로 데이터를 보내는 코드를 다음과 같이 변경하였다. app.post('/add', function(req, res){ db.collection('counter').findOne({name: '게시물갯수'}, function(error,result){ console.log(result.totalPost) var totalP..
EJS 템플릿 엔진 웹브라우저에 컨텐츠를 보여줄 목적으로 웹서버를 구축한다면 HTML에서 파일을 읽어들일 때 실시간으로 변경되어 전달하는 방법은 어렵다. 즉 데이터 베이스 같은 외부에서 실시간으로 변경되는 값을 받아올 때 EJS 템플릿 엔진을 사용하여 편하게 작업할 수 있다. ejs를 설치 후 npm install ejs 프로젝트 폴더 안에 views 폴더를 생성하고 확장자가 ejs인 파일을 생성한다. EJS파일은 HTML파일 구조와 같지만 사용하는 문법은 조금씩 다르다. HTML중간에 서버 데이터를 넣고 싶을 때 아래와 같이 사용한다. HTML에 if문을 적용하거나 반복문을 적용하고 싶을때 로 자바스크립트 문법을 담을 수 있다. MongoDB Atlas에서 HTML로 데이터를 가져오기 위해서 serve..
sever.js에 데이터베이스를 먼저 정의한다. var db; 이후 클라이언트문 안에 해당 문장을 작성하자 db = client.db('todoapp'); db.collection('post').insertOne( {이름 : 'John', _id : 100} , function(error, result){ console.log('저장완료'); }); todoapp은 database이름이고 post는 collection의 이름이다. insertOne 메서드를 통해 Object자료형을 첫번째 파라미터로, 콜백함수로 두번째 파라미터로 전달하고 있다. 전달이 완료되면 콘솔창에 저장완료 라는 문구가 뜨고 아틀라스에 접속하면 데이터가 기입된 것을 확인 할 수 있다. 코드에서는 분명 이름과 나이를 입력하였는데 자동으..
먼저 mongodb를 설치 npm install mongodb 이후 server.js 상단에 다음 문장 추가 const MongoClient = require('mongodb').MongoClient; server.js 아래에 다음 코드 입력 MongoClient.connect('접속URL', function(error, client){ if (error) return console.log(error); app.listen('8080', function(){ console.log('listening on 8080') }); }) 접속 URL은 MongoDB atlas에서 가져온다. 아틀라스Database에서 Connect를 클릭하고 Connect your application을 클릭하면 접속 URL이 뜬..
Express라이브러리 NodeJS를 이용하여 쉽게 서버를 구성할 수 있게 도와주는 웹 프레임워크이다. Express설치 npm init 이후 npm install express 입력하면 express 설치는 끝. 서버에 요청할 수 있는 4가지 방법 GET: 읽기요청(웹페이지 읽을 때) POST: 쓰기, 생성 요청(글을 쓰거나, 로그인 기능 등) PUT: 수정요청(글, 댓글 수정) DELETE: 삭제 용청(글, 댓글 삭제) GET요청 서버생성 server.js const express = require('express'); const app = express(); app.listen(8080, function() { console.log('listening on 8080') }) 서버를 express로 ..
Docker에 MongoDB설치 docker search mongo 다른 사람들이 만들어 놓은 mongo목록을 볼 수 있다. MongoDB Docker 이미지 다운 다음 명령어를 입력하여 이미지를 받자 docker pull mongo 실행하면 아래와 같이 이미지를 받았고, Using default tag: latest latest: Pulling from library/mongo 01bf7da0a88c: Pull complete f3b4a5f15c7a: Pull complete 57ffbe87baa1: Pull complete 77d5e5c7eab9: Pull complete 43798cf18b45: Pull complete 67349a81f435: Pull complete 590845b1f17c: Pu..