algorithm

    1월 28일 백준 코딩테스트

    1월 28일 백준 코딩테스트

    백준 1008 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. zz 이게 이렇게 어려울 일인가 약간 자괴감 들고 괴로워. 아주 처음에 c++ 처음 배울 때 *랑 / 가지고 소수점 버리는 퀴즈?를 풀었었는데, 문제 조건을 이해를 못 했는지) 그거랑도 헷갈려서 계속 틀렸었다. #include using namespace std; int main () { double a,b; cin >> a >> b; cout.precision(11); cout > coords[i].x >> coords[i].y; }; // 좌표 세 개 입력 받기 // 좌표를 넣은 뒤 외적한 결과 값을 받는다. Direction result = getCrossProduct(coords[0], coords[1], ..

    재귀 함수(recursive function)

    재귀 함수(recursive function)

    재귀(再歸) - 다시 돌아온다 재귀 함수 - 자기 자신(함수)을 호출하는 함수를 말한다. 함수가 함수를 다시 부르는 것으로 중단점을 설정하지 않으면 끝없이 자신을 호출하는 루프에 빠진다. const recursion = () => { return recursion(); } 이런 함수를 만들고 recursion을 호출한다면, 끝없이 자기자신을 호출하는 무한루프에 빠질 것이다. (Runjs 같은 곳에서 하지 않길 바란다,,,,) const recursion = (i) => { if(i { if(i

    알고리즘 - 신규 아이디 추천 replace, slice, concat,

    const yes = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p","q", "r","s","t","u","v","x","y","z","0","1","2","3","4","5","6","7","8","9","0","-","_","."]; function solution(new_id) { var answer = ''; console.log(new_id.toLowerCase()); let id = ""; new_id = new_id.toLowerCase(); for(let i = 0; i < new_id.length; ++i) { if(yes.includes(new_id[i])) { id+=new_id[i] } ..

    알고리즘 - [1차] 다트 게임

    생각한건... 앞에서부터 세번째 문자가 isNaN(Not of Number)인지에 따라서 0,3 또는 0,2개로 나눠주는 거였다. 그렇게 해서 배열에 하나씩 푸쉬해서, 세트끼리 묶여있는 것까진 됐는데... 스타상과 아차상이 도저히 어떻게 적용해야할지를 모르겠다,,, reduce로 돌렸을 때 각각의 cur안에서만 영향을 미치는 게 아니라 인덱스가 다른 애한테도 영향을 미치니까 어떻게 해야할지 모르겠음 ㅠㅠ function solution(dartResult) { let arrays =[]; // console.log(dartResult.split("").map((el)=> { // console.log(el) // })) let array = dartResult.split(""); for(let i = 0..

    알고리즘 - [1차] 비밀지도

    알고리즘 - [1차] 비밀지도

    2018 KAKAO BLIND RECRUITMENT https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백..

    알고리즘 - 3진법 뒤집기, 2진 변환 반복

    알고리즘 - 3진법 뒤집기, 2진 변환 반복

    삼진법으로 대체 어떻게 뒤집지 하고 숫자가 3의 i승과 3의 i+1승 사이에 있으면 일단 3의 i에 1을 더하고 ,,,, 나머지도 이런 식으로 구해야하나 하고 고민하다가 결국 구글링했다. 자바스크립트 정답을 보려던건 아니고 어떻게 구하는 규칙?방법이 있나 싶어서 검색한건데 자바스크립트로 진수 변환하기를 봐버렸고.... function solution(n) { console.log(n.toString(3)) // 1200 } solution(45); toString() 하면 그 숫자의 진법으로 변환되어서 나오는데 toString이? 대체 원리가 뭐지 숫자 및 BigInts의 경우 toString()은 선택적으로 기수(radix)를 매개변수로 취합니다. 기수의 값은 최소 2부터 36까지입니다. 기수를 이용함..

    알고리즘 - 크레인 인형뽑기 게임

    알고리즘 - 크레인 인형뽑기 게임

    게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. https://programmers.co.kr/learn/courses/30/lessons/64061 function solution(board, moves) { var answer = 0; let basket = []; // 1번 뽑을거ㄱ야야ㅑ야야 왜이래 for(let j = 0; j

    알고리즘 - 실패율, indexOf, lastIndexOf, 배열을 객체처럼!

    알고리즘 - 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages..

    220620 프론트엔드 부트캠프 41일차 : refreshToken, Graphql은 사실ㅇ0ㅇ

    220620 프론트엔드 부트캠프 41일차 : refreshToken, Graphql은 사실ㅇ0ㅇ

    주니어로서 반드시 필요한 건 아닐 수 있지만 이건 해야 경쟁력 가질 수 있음 굉장히 중요하다고 생각하는 부분. 그래도 못한다고 좌절할 필욘 x.. 오늘 목차 1. refreshToken 2. graphql 원리 refreshToken JWT는 항상 accessToken? X accessToken은 항상 JWT? X JWT는 DB에 로그인 정보를 저장하는 것의 대안으로 나온 방식 accessToken은 누가 중간에 탈취해갈 수 있어. 훈이가 철수꺼 탈취해서 나 철수요~ 하면서 철수의 jwt 토큰을 보냈어. 그럼 백엔드 입장에선 그게 누군지 몰라, jwt 복호화했더니 철수 나오니 철수!라고 생각해버림 그래서 accessToken 만료시간을 준다. 보통 30분~2시간으로 잡는다. (지금 (여기) 백엔드는 한 ..

    알고리즘 - 예산, JadenCase문자열 만들기

    알고리즘 - 예산, JadenCase문자열 만들기

    // 테스트케이스 3번 실패 function solution(d, budget) { //1. 각 원소의 합을 구해보장 console.log(d.reduce((acc, cur)=> acc+cur)); // 15 // 2. 제일 작은 애부터 차례로 담아보자 console.log(d.sort((a,b)=>a-b)); let arr = d.sort((a,b)=>a-b); let count = 0; // 3. budget을 넘지 않는 범위에서 데려와보자 for(let i = 0; i a-b)); let arr = d.sort(..

    알고리즘 - 체육복 도난사건,,,!!!!!

    알고리즘 - 체육복 도난사건,,,!!!!!

    function solution(n, lost, reserve) { var answer = 0; let have = []; console.log(n); // 1~n까지의 학생 for(let i = 1; i reserve.includes(el) || reserve.includes(el-1)|| // reserve.includes(el+1)) // } for(let i = 0; i lost.includes(el) || lost.includes(el-1)|| lost.includes(el+1)) } // 그럼 help엔 빌려주는 애가 들어가게 된다. // help의 length만큼 더하면 되나? 그러면 또 중복.. ? ..

    알고리즘 - stack, queue(맛집, 놀이공원), 숫자 문자열과 영단어

    stack, queue 문제 맛집 줄 기다리기, 놀이기구 같이 타기 위해 기다리기 더보기 1. 배열 안에서 찾을 숫자를 뒤에서부터 찾는다고 했을 때 해당 숫자가 나오기 전까지의 모든 숫자들을 원본 배열에서 제거하고, 제거된 숫자들을 새로운 배열에 차례로 담은 후 마지막 숫자를 새로운 배열 끝에 담아 [ [제거된 원본 배열], [새로운 배열] ] 형태로 리턴해주세요. 예를 들어, arr 데이터로 [1, 2, 3] 을 받고, target 으로 1 을 받았을 때 배열에서 1 이전까지의 데이터인 3, 2 숫자 데이터를 차례로 새로운 배열에 담고 마지막으로 찾은 target 숫자 데이터인 1 을 배열의 가장 마지막에 넣으면 [3, 2, 1] 형태의 배열을 가질 수 있게 됩니다. 이때 리턴값으로, 숫자 전까지 삭제..