문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 생각DFS를 사용해서 풀어야 하는 문제다. 자바스크립트에서 DFS를 어떻게 풀어야되는지 아래의 블로그 글을 참고했다. 링크: https://chamdom.blog/dfs-using-js/ [알고리즘] JavaScript로 구현하는 DFSdfs에 대해 알아보기 전에 우선 그래프에 대한 이해가 필요하다. 그래프에 대한 설명은 여기 에 자세히 정리해두었다. DFS란? DFS(Depth-First-Search) 는 …chamdom.b..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 처음 든 생각Dynamic Programming을 활용하여 푸는 문제라는 사실을 알고 있었기 때문에 고민하는데 드는 시간이 오래 걸리지는 않았다. 삼각형 칸 하나 당 배열을 생성하고, 위 칸의 배열에 존재하는 합들을 아래 칸에 더해서, 아래 칸의 배열에 넣어주는 행위를 반복하고, 맨 밑의 칸들을 순회하면서 가장 큰 값을 찾으면 될 것 같다는 결론을 내렸다. (참고로 맨 왼쪽에 있는 칸과 맨 오른쪽에 있는 칸은 윗 줄에서 한 가..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 풀이‘무슨 기준으로 정렬을 해야할까?’를 고민했다. 앞자리에 있는 수가 클수록 먼저 배치해야하는 것은 쉽게 알 수 있었다. 생각해봐야할 케이스는 34와 341 같은 경우이다. 둘 중에 무엇을 먼저 앞에 놓아야할까? 34134와 34341을 비교하면 34를 먼저 배치했을 때가 더 숫자가 컸다. 즉, 마지막 자리의 숫자가 더 큰 것이 먼저 배치가 되면 된다. 그래서 두 숫자를 비교할 때 각 숫자의 index를 설정하고, 맨 앞자리..
0. PWA와 FCM을 쓰려는 이유친구들과 공모전을 나가기로 했었다. 공모전에 프로젝트를 제출하려면 몇 가지 조건을 충족해야했는데, iOS와 Android에서 모두 작동해야하며, 푸시 알림이 구현되어야 한다는 조건이었다. React와 문법이 비슷한 React Native를 빠르게 학습한 후 이 언어를 활용하여 개발을 진행하는 방법이 먼저 떠올랐다. 그 다음에 떠오른 것이 바로 PWA(Progressive Web App)였다. PWA 기술을 활용하면 웹사이트지만 네이티브 앱처럼 설치하여 사용할 수 있고, 푸시 알림, 오프라인 작동 등 앱과 유사한 기능들도 구현할 수 있다. 푸시 알림은 FCM(Firebase Cloud Messaging)을 통하여 구현하기로 했다. Firebase을 독학하여 CRUD를 구현..
책 '그림으로 배우는 SQL 입문'을 읽은 후 정리한 글입니다. 데이터베이스에는 몇 가지 종류가 있는데, 그 중 가장 많이 이용되는 것은 Relational Database(관계 데이터베이스: RDB 형식) RDB는 행(record)과 열(column)으로 구성된 표(table)로 데이터를 다룸테이블 안의 1개의 요소를 ‘필드’라고 부름 RDB를 관리하기 위한 DBMS를 관계 데이터베이스 관리 시스템, RDBMS라고 부름 SQL: 데이터베이스 조작이나 정의를 시행하기 위한 언어1. SELECT, FROM데이터베이스에서 데이터를 가져오기 위해서는 SQL에서 SELECT라는 구문을 사용(SELECT 구문을 사용한 SQL을 SELECT 문이라고 함) 예시) product_id와 product_name을 pro..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 풀이1번 수포자는 1,2,3,4,5번을 계속 반복하면서 찍고,2번 수포자는 2,1,2,3,2,4,2,5번을 반복하면서 찍고,3번 수포자는 3,3,1,1,2,2,4,4,5,5번을 반복하면서 찍는다. 수포자들이 찍은 번호들을 각각 배열로 선언하고, 수포자들이 맞춘 문제 개수들도 변수로 선언한다. answers 배열을 순회하면서 해당 배열이 가리키는 index를 각각 5, 8, 10으로 나눈 값을각 수포자가 찍은 번호 배열의 inde..
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/129091. 문제를 보고 든 생각‘(’이 먼저 나오고, 그리고 나중에 ‘)’으로 이 괄호가 닫혀야한다.그렇다면, 알 수 있는 사실은‘)’이 먼저 나오면 안된다.‘(’의 개수와 ‘)’의 개수는 같아야한다.그렇다면 0으로 시작하는 변수를 두고, ‘(’이 나오면 1을 더해주고, ‘)’이 나오면 1을 빼주면 될 것 같다.‘)’이 먼저 나오면 안된다고 했다. → 이 경우는 해당 변수가 음수가 되는 경우이므로 음수가 되면 바로 false를 return 해주면 될 것 같다. 2. 풀이function solution(s){ let count = 0; for(let ind..
프로그래머스의 코딩테스트 문제 → 알고리즘 고득점 Kit → 이분탐색 카테고리에서 풀었다.이분탐색이라는 카테고리 안에 있는 문제인 것은 알았지만, 도대체 왜 이 문제가 이분탐색을 활용해야하는지 이해하지 못하고 삽질만 계속하다가 다른 분들의 풀이를 보고 겨우겨우 풀 수 있었다. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/43238풀이우리가 구해야하는 것은 ‘모든 사람이 심사를 받는데 걸리는 시간의 최솟값’이다.n은 입국심사를 기다리는 사람 수이며, 배열 times에는 각 심사관이 한 명을 심사하는데 걸리는 시간이 담겨있다. 만약 ‘모든 사람이 심사를 받는데 걸리는 시간의 최솟값’을 안다면(answer라고 하자),심사관 A가 한 명을 ..
김진중(골빈해커)님의 '최고의 프롬프트 엔지니어링 강의'를 읽고 정리한 글입니다.함수 호출호출할 수 있는 함수(기능)를 미리 설정해두면 사용자의 필요에 따라 해당 함수 이름을 호출하여 요청에 응답하는 기능→ 프로그램 내의 함수를 직접 호출하는 것이 아니라 어떤 함수와 파라미터가 필요한지를 JSON 형식으로 응답해줌{ "name": "get_current_weather", "description": "주어진 위치의 현재 날씨를 가져옵니다.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "도시 또는 지역, 예) 서울", }, "unit": {"type"..