본문 바로가기

전체 글

프로그래머스 - 단어 변환 문제풀이에 백트래킹을 적용하였고, 자바스크립트로 작성했습니다. 문제 두 개의 단어 begin, target과 단어 집합 words가 매개변수로 주어질 때, 최소 몇 단계를 거쳐 begin이 target으로 변환 될 수 있는지를 반환하라. 제한사항 한 번에 한 개의 알파벳만 바꿀 수 있다. words에 있는 단어로만 변환할 수 있다. 각 단어는 알파벳 소문자로만 이루어져 있다. 3 dot->dog->cog와 같이 4단계를 거쳐 변환 가능. 문제풀이 이 문제의 가장 작은 하위문제는 words 순회할 때 이전 문자열을 현재 문자열으로 수정할 수 있는가 없는가 이다. 수정이 가능할 경우 이전문자열을 현재 문자열로 수정한 경우와 수정하지 않은 경우 둘 다 탐색해야한다. 수정이 불가능한 경우 수정하지 않은 경우만 .. 더보기
프로그래머스 - 네트워크 문제 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 말한다. 예를들어 컴퓨터A가 컴퓨터B와 직접적으로 연결되어있고, 컴퓨터B가 컴퓨터C와 직접적으로 연결되어있다면, 컴퓨터A와 컴퓨터C는 간접적으로 연결되어 정보를 주고 받을 수 있다. 따라서 컴퓨터A,B,C는 모두 같은 네트워크 상에 있다고 말할 수 있다. 컴퓨터의 갯수 n과 연결에 대한 정보가 주어질 때, 네트워크의 갯수를 반환하라. 입력값 n(int): 컴퓨터의 갯수 computers(int[][]): 컴퓨터들이 연결되어있는지 아닌지를 표현한 2차원배열. 컴퓨터i와 컴퓨터j가 연결되어있다면 computers[i][j]는 1이고 연결되어있지 않으면 0이다. 제한사항 1 더보기
프로그래머스 - 등굣길 문제 물 웅덩이가 없는 칸만으로 학교에 갈 수 있는 경로의 수를 구하라 입력값 m: 가로 길이 n: 세로 길이 puddles: 물에 젖은 지역들 좌표 제한사항 1 더보기
프로그래머스 - 정수 삼각형 문제 삼각형 꼭대기에서부터 바닥까지 이동할 때, 숫자의 합이 가장 큰 경우를 찾아라. 아래칸으로 이동할 때는 대각선 방향으로 왼쪽 한 칸 또는 오른쪽 한 칸으로만 이동이 가능하다. 제한사항 1 더보기
프로그래머스 - 타일 장식물 문제 앵무조개의 나선 모양처럼 생긴 타일이 붙어있다. 타일이 N개일때 둘레의 길이를 구하라. 제한사항 1 2*x + 2*y function solution(N) { let a = 0, b = 1 while (--N) { [a, b] = [b, a + b] } return getPerimeter(b, a + b) } 시간복잡도: O(N) 공간복잡도: O(1) 더보기
프로그래머스 - N으로 표현 문제 숫자 5와 사칙연산만으로 12를 표현할 수 있다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 이고, 이중 가장 작은 경우는 4이다. 숫자 N과 number가 주어질 때 N과 사측연산만으로 number를 표현하는 방법 중 N의 최소사용횟수를 반환하라. 제한사항 1 더보기
프로그래머스 - 카펫 level 2 문제 갈색으로 테두리가 1줄 둘러져있고 중앙에는 노란색이 칠해져 있는 카펫이 있다. 갈색 격자의 수와 노란색 격자의 수가 주어질 때, 카펫의 가로 세로 규격을 반환하라. 문제풀이 1. 주어진 노란색 격자로 만들 수 있는 모든 [가로, 세로]를 순회한다. 2. 그렇게 사각형 중 둘레의 길이가 갈색 격자의 수와 같은 것이 있으면 정답을 찾은 것. 3. 노란색 사각형의 가로 세로를 반환하는게 아니라, 거기에 갈색 격자까지 합했을때의 가로 세로 크기를 반환해야하므로 노란 사간형의 가로 세로 길이에 2씩 더해준다. function solution(brown, yellow) { let y = 0 while (++y) { const x = yellow / y if (y > x) { break } const perim.. 더보기
프로그래머스 - 숫자 야구 level 2 문제 숫자 야구 게임은 1~9까지 3자리 임의의 숫자를 정한 뒤 서로가 생각한 숫자를 맞추는 게임이다. 숫자는 맞지만, 위치가 틀렸을 때는 볼 숫자와 위치가 모두 맞을 때는 스트라이크 숫자와 위치가 모두 틀렸을 때는 아웃 입력값 baseball: 질문한 세자리 수, 스트라이크의수, 볼의 수를 담은 2차원 배열 출력값 정답일 수 있는 숫자의 수 문제풀이 1. 정답 후보가 될 수 있는 가장 작은값 123 부터 가장 큰 값 987까지 순회하며 정답인지 확인한다. 2. 100처럼 0이 포함되어있거나 112 와 같이 같은 수가 중복된 경우는 답이 될 수 없는 숫자이므로 제외한다. 3. 정답후보와 질문한 세자리 수를 비교해봤을떄 스트라이크나 볼의 갯수가 딱 맞아 떨어지지 않는 경우 정답이 아니므로 제외한다. fun.. 더보기