전체 글
-
[Programmers] 프로그래머스 1단계 : 나누어 떨어지는 숫자 배열Algorithm/Programmers Lv.1 2023. 5. 2. 14:04
💡 문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 🚫 제한 조건 • arr은 자연수를 담은 배열입니다. • 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. • divisor는 자연수입니다. • array는 길이 1 이상인 배열입니다. 입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3, 2, 6] 10 [-1] 나의 풀이 function solution(arr, divisor) { ..
-
[CS 지식] 디자인패턴. 팩토리 패턴CS 지식 2023. 4. 27. 20:47
팩토리 패턴 (Factory Pattern) • 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴 • 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 📍 상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결합을 가지며 상위 클래스에서는 인스턴스 생성 방식에 대해 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게 됨 📍 객체 생성 로직이 따로 떼어져 있기 때문에 코드를 리팩터링하더라도 한 곳만 고칠 수 있게 되니 유지 보수성이 증가 Example. 라떼 레시피와 아메리카노 레시피, 우유 레시피라는 구체적인 내용이 들어 있는 하위 클래스가 컨베이어 벨트를 통해 전달되고 상위 클래스인 바리스타 공장에서 이 ..
-
[Programmers] 프로그래머스 2단계 : 영어 끝말잇기Algorithm/Programmers Lv.2 2023. 4. 27. 20:03
💡 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 2. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 3. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 4. 이전에 등장했던 단어는 사용할 수 없습니다. 5. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. • 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. •..
-
[Programmers] 프로그래머스 2단계 : 멀리 뛰기Algorithm/Programmers Lv.2 2023. 4. 18. 15:01
💡 문제 설명 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다. 🚫 제한 조건 • n은 1 이상 2,000 이하인 정수입니다. 입출력 예 n return 4 5 3 3 나의 풀이 function solution(n) { co..
-
[CS 지식] 디자인패턴. 디자인패턴 정의 & 싱글톤 패턴CS 지식 2023. 4. 15. 11:48
디자인 패턴 💡 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것 • 설계자로 하여금 재사용이 가능한 설계는 선택하고 재사용을 방해하는 설계는 배제하도록 도와줌 • 패턴을 쓰면 이미 만든 시스템의 유지보수나 문서화도 개선할 수 있고 클래스의 명세도 정확하게 할 수 있음 • 객체 간의 상호작용 또는 설계 의도까지 명확하게 정의할 수 있음 디자인 패턴의 카테고리 ⭐️ 생성 패턴 (Creational Pattern) 구조 패턴 (Structural Pattern) 행동 패턴 (Behavioral Pattern) 카테고리 별 패턴 종류 Singleton Abstract Factory Factory Method Builder Prot..
-
[Programmers] 프로그래머스 2단계 : 카펫Algorithm/Programmers Lv.2 2023. 4. 15. 11:13
💡 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수를 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 🚫 제한 조건 • 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. • 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. • 카펫의 가로 길이는 세로 길이와 같거..
-
[HTML] HTML (Hypertext Markup Language) ❓HTML 2023. 4. 15. 10:48
HTML (Hypertext Markup Language) 웹을 이루는 가장 기초적인 구성요소로, 웹 콘텐츠의 의미와 구조를 정의할 때 사용 📍 HyperText : 웹 페이지를 다른 페이지로 연결하는 링크 (= 웹의 근복적인 속성) • HTML은 웹 브라우저에 표시되는 글과 이미지 등의 다양한 콘텐츠를 표시하기 위해 마크업 을 사용 • HTML 마크업은 다양한 요소 를 사용 등 • HTML 요소는 태그 를 사용해서 문서의 다른 텍스트와 구분 요소 (Element) 요소는 여는 태그와 닫는 태그, 콘텐츠로 이루어짐 🔖 요소의 주요 부분 1. 여는 태그 (Opening Tag) • 요소의 이름으로 구성되고 로 감싸짐 • 요소가 시작되는 곳, 또는 효과를 시작하는 곳임을 나타냄 2. 닫는 태그 (Cl..
-
[Programmers] 프로그래머스 2단계 : 짝지어 제거하기Algorithm/Programmers Lv.2 2023. 4. 13. 14:41
💡 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그 다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa ➡️ bb aa ➡️ aa ➡️ 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 🚫 제한 조건 • 문자열의 길이 : 1,000,000이하의 자연수 • 문자열은 모두 소문자..