728x90
반응형

Level 1 7

프로그래머스 - Level 1. 공원 산책 / golang (go) / javascript (js)

문제설명 문제분석 이 문제는 특정 조건에서는 현재 위치를 벗어나지 않고, 그 외에는 산책로를 이동하며 위치를 변경하는 문제입니다. 특정 조건은 다음과 같습니다. 주어진 방향으로 이동할 때 공원을 벗어나는지 확인합니다. 주어진 방향으로 이동 중 장애물을 만나는지 확인합니다. 이 문제를 풀면서 조금 난감했던 지점이 있었는데, 코드와 함께 설명토록 하겠습니다. 이해하기 쉽게 코드작성하기 import ( "strings" "strconv" "github.com/thoas/go-funk" ) func solution(park []string, routes []string) []int { answer := getPosition(park, "S") for _, route := range routes { way, fe..

프로그래머스 - Level 1. 바탕화면 정리 / JavaScript (js)

문제설명 문제분석 모든 좌표를 순회하며 파일을 찾아 최소 x, 최소 y, 최대 x, 최대 y를 각각 구해 하나의 배열에 담아 리턴하는 문제입니다. 새로 올라온 level 1이기도 하고, 주말이기도 하니 빠르게 코딩해보겠습니다. 이해하기 쉽게 코드작성하기 function solution(wallpaper) { const file = "#"; let offset = { minX: Infinity, minY: Infinity, maxX: -1, maxY: -1 }; for(let row = 0; row < wallpaper.length; row++) { for(let col = 0; col < wallpaper[row].length; col++) { if(wallpaper[row][col] === file) ..

230214

프로그래머스 문제를 풀다보니 생각보다 재밌다. 가끔 수정할 거 없이 잘 나온 코드가 있는데, 블로깅을 할까말까 고민한다. 근데 이런 문제는 언제든 만나면 비슷한 코드가 나올 거 같으므로 패스하는 게 낫겠다 싶다. (딱히 배울 게 없다) 2월 14일 (수) Today I Learned 오늘은 면접도 보고오고, 작업도 좀 했다. 그러나 골자는 프로그래머스 문제풀기다. 프로그래머스 level 0부터 시작해서 도장깨기 하고 있다 Lv.1이 5문제 남았다. 곧 Lv.2만 푸는 단계로 진입할 거 같다. Tomorrow I'll Learn 데이터 작업 마무리 및 컨펌 요청 추천 알고리즘 모식도 작성 프로그래머스 문제 풀기

Today I Learned 2023.02.15

프로그래머스 - Level 1. 콜라 문제 / JavaScript (js)

문제설명 문제분석 이 문제는 옛날 콜라 문제의 2, 1 자리에 a, b를 넣으면 해결되는 문제입니다. 현재 가지고 있는 빈 병 중 a개 묶음이 몇 개 나오는지 구합니다. 이 묶음의 수와 묶음에 포함되지 못한 낱병의 합으로 다시 한 번 a개 묶음이 몇 개 나오는지 구합니다. 동일한 과정을 빈 병의 총 갯수가 한 묶음에 묶여야하는 a개 미만인 경우까지 반복합니다. 문제를 단순화 했으니 이해하기 쉽게 코드를 짜보겠습니다. 이해하기 쉽게 코드작성하기 function solution(a, b, n) { return recursion(a, b, n); } function recursion(a, b, emptyBottles) { // 빈 병의 갯수가 한 묶음의 기준인 a개보다 적은 경우 0을 리턴 if(emptyBo..

프로그래머스 - Level 1. 둘만의 암호/ JavaScript (js)

문제설명 문제분석 문자열 암호 문제입니다. 문자열 s의 각 요소를 index만큼 뒤의 알파벳으로 치환하여 리턴하면 됩니다. 다만 이때 skip에 포함된 알파벳은 (index 만큼)에 포함되지 않습니다. 가벼운 마음으로 풀어보겠습니다. 문자열 s의 각 요소를 skip에 포함되지 않은 뒤의 알파벳 중 index 만큼 건너간 알파벳으로 치환한다. 이해하기 쉽게 코드작성하기 function solution(s, skip, index) { // 모든 알파벳 중 skip에 포함된 알파벳 제외 const remainAlphabet = "abcdefghijklmnopqrstuvwxyz".split("").filter(x => !skip.includes(x)); // 문자열 s의 각 요소를 남은 알파벳 중 index 만..

프로그래머스 - Level 1. 개인정보 수집 유효기간 / JavaScript (js)

문제설명 문제분석 파라미터는 순서대로 오늘 날짜, 각 약관별 유효기간, 약관별 사인한 날짜가 전달됩니다. 이 작업은 한 명에 대한 작업이고, 한 명이 사인한 약관에 대해 오늘날짜로 확인하는 작업이 진행됩니다. 문제를 풀기에 앞서, 만약 내가 실무에서 이런 작업을 진행한다고 생각해봤습니다. 아마 나는 매일 한번씩 모든 사용자에 대해 이 함수를 실행하는 대신, 매월이나 매년 또는 사인하는 순간에 큐잉할 거 같습니다. 당연히 개인정보보호법이 강화되어 시행되는 조치인만큼, 처음부터 약관을 파기하는 로직이 필요하진 않았을 것입니다. 따라서 레거시한 데이터를 바탕으로 위 작업이 진행될 것이고, 최초의 1회에 한해서는 모든 사용자를 대상으로 반드시 이 함수를 실행해야한다고 추론할 수 있습니다. 그럼에도 불구하고 시행..

프로그래머스 - Level 1. 최소직사각형 / JavaScript (js)

문제설명 - 최소직사각형 문제분석 모든 명함에는 가로길이와 세로길이가 존재하며, 가로 또는 세로의 길이가 각각 가장 긴 명함의 변을 구해 가장 작은 지갑의 면적을 리턴하는 문제이다. 말이 조금 어려운 거 같아서 풀어보자면 다음과 같다. 모든 명함에는 가로길이와 세로길이가 있다. 일반적인 명한은 가로 길이가 더 길지만, 간혹 세로길이가 더 긴 명함도 존재한다. 세로길이가 더 긴 명함을 옆으로 돌려서(세로길이와 가로길이를 스왑해서) 보관할 수 있다. 위 모든 경우를 포함하는 동시에, 입력된 모든 크기의 명함을 보관할 수 있는 가장 작은 지갑을 만들어야 한다. 결과값은 명함의 가장 긴 가로길이 x 가장 긴 세로길이여야 한다. (이때 3번이 이미 적용된 상태여야 한다.) 문제를 단순화 했으니 이해하기 쉽게 코드..

728x90
반응형