분류 전체보기 58

프로그래머스 - 소인수분해

다들 소인수분해 어떻게 하시나요 저는 이렇게 합니다!! 여기서 아이디어를 얻었는데요! 2부터 시작해 나누어 떨어지지 않을 때까지 나누다보면 다음 소인수로 넘어갑니다 for문을 사용해 2부터 n까지 돌려주고, 그 안에서 while문으로 나누어 떨어지는 동안만 반복하게 하는 것입니다! 바로 코드 진행시켜! import java.util.*; class Solution { public int[] solution(int n) { ArrayList list = new ArrayList(); for(int i = 2; ii).toArray(); } } while문은 참인 동안 반복문을 수행합니다! 만약 중복인 값이 없다면 list에 넣어줍니다! 계속 n을 i로 나누어주다 보면 제가 구하는 방식처럼 어느 순간 나누어..

코딩테스트 2023.12.30

인프런 - Login - 2

session을 사용해 로그인페이지를 구현해보자! app.get('/auth/login', (req, res)=>{ var output = ` ` res.send(output) }) output을 사용해 기본 로그인창의 틀을 만들어줍니다! submit을 하면 같은 라우터인 /auth/login에 가지만 get 방식에서 post 방식으로 바뀌기 때문에 app.post를 만들어봅시다! app.post('/auth/login', (req, res)=>{ var savedUser = { user : 'jieun', pw : '1234', displayname : 'Jieun!' } var user = req.body.username var pw = req.body.password if(user === saved..

Node.js 2023.12.21

인프런 - Login - 1

session을 이용해 로그인 페이지를 만들자! 먼저 session은 사용자의 식별자만 저장을 합니다! 따라서 cookie보다 보안에 유리한 장점이 있죠! var express = require('express') var session = require('express-session') var bodyParser = require('body-parser') var app = express() app.use(bodyParser.urlencoded({extended : false})) app.use(session({ secret: 'randomkey', resave: false, saveUnitionaized: true //session id를 사용하기 전까지 생성 X })) app.listen(3000, ..

Node.js 2023.12.21

프로그래머스 - 배열의 길이를 2의 거듭제곱으로 만들기

처음 생각한 방법은 ArrayList를 사용해 arr의 값을 옮겨준 다음 list의 길이가 2의 거듭제곱보다 작을 때의 거듭제곱을 구해 list에 거듭제곱이 될 때까지 0을 넣는 방법이었습니다! 처음에 ArrayList에 arr의 값을 옮겨주고~ ArrayList list = new ArrayList(); for(int n : arr) list.add(n); Math.pow()를 사용해 2의 거듭제곱과 list의 길이를 비교했습니다! int res = 0; for(int i = 0; i

코딩테스트 2023.12.21

프로그래머스 - 가격대 별 상품 개수 구하기

가격대를 0, 10000, 20000과 같이 표현하기 때문에 원래 가격 뒤 4자리 숫자를 없애면 되겠다고 생각했기 때문에 TRUNCATE를 사용했습니다! SELECT TRUNCATE(PRICE, -4) AS 'PRICE_GROUP', COUNT(PRODUCT_ID) AS 'PRODUCTS' FROM PRODUCT 그 다음! 가격대 별로 묶어줘야하기 때문에 GROUP BY PRICE_GROUP 마지막으로 오름차순 정리까지 해주면~ ORDER BY PRICE_GROUP 최종 코드! SELECT TRUNCATE(PRICE, -4) AS PRICE_GROUP, COUNT(PRODUCT_ID) AS PRODUCTS FROM PRODUCT GROUP BY PRICE_GROUP ORDER BY PRICE_GROUP ..

코딩테스트 2023.12.20

프로그래머스 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

자동차 종류를 기준으로 그룹별로 묶어야겠죠? GROUP BY를 사용해봅시다! 먼저! CAR_TYPE과 CAR_TYPE별 차의 개수를 구하기 위한 컬림 CARS를 가져올겁니다! SELECT CAR_TYPE, COUNT(CAR_TYPE) AS 'CARS' FROM CAR_RENTAL_COMPANY_CAR 그리고! 통풍시트, 열선시트, 가죽시트 셋 중 하나라도 포함하고 있는 경우를 찾아야합니다! 이때 CONTAINS를 사용해도 되지만 여러개의 조건이 달려있기 때문에 저는 REGEXP를 사용해 볼 것 입니다~! WHERE OPTIONS REGEXP('통풍시트|열선시트|가죽시트') 이렇게 하게 되면 OPTIONS에서 통풍시트, 열선시트, 가죽시트 중 하나라도 포함하는 경우를 찾아줍니다. ( )에는 여러가지 정규식..

코딩테스트 2023.12.20

프로그래머스 - 세 개의 구분자

저는 split을 사용해서 문자열을 나누어 준 다음 ArrayList를 사용해 문자열의 길이를 비교해주는 방법을 생각했습니다! import java.util.*; class Solution { public String[] solution(String myStr) { String[] s = myStr.split("[abc]"); ArrayList list = new ArrayList(); for(String str : s){ if(str.length() > 0) list.add(str); } if(list.size() == 0) list.add("EMPTY"); String[] answer = new String[list.size()]; int n = 0; for(String str : list) answ..

코딩테스트 2023.12.20

인프런 - shoppingCart - 4

cookie를 사용해서 cart에 cookie 값을 넣어보자! app.get('/cart', function(req, res){ // cart의 쿠키값 전달 var cart = req.signedCookies.cart if(!cart){ res.send('EMPTY!') } else { var output = '' for(var id in cart){ // id는 제품의 id값 output += `${products[id].title} (${cart[id]})` } res.send(`CART${output}Products List`) } }) cart에 cart cookie의 값을 전달해줍니다 만약 cart cookie에 값이 없다면 EMPTY를 브라우저에 전달합니다. 값이 존재하면 for ~ in문을 ..

Node.js 2023.12.19

인프런 - shoppingCart - 3

cookie를 사용해서 cart에 항목들을 넣어보자! app.get('/cart/:id', function(req, res){ var id = req.params.id if(req.signedCookies.cart){ var cart = req.signedCookies.cart } else { var cart = {} } if(!cart[id]) cart[id] = 0 cart[id] = parseInt(cart[id]) + 1 res.cookie('cart', cart, {signed:true}) res.redirect('/cart') }) products에서 품목을 누르면 품목의 cart/name 즉, 품목의 name으로 이동을 하기 때문에 /cart/:id로 접속을 해줍니다! id에 요청의 para..

Node.js 2023.12.19