분류 전체보기
-
객체를 생성하는 방법에는 여러 가지가 있지만, 그 중에서도 정적 팩토리 매서드와 빌더 패턴이 자주 사용된다.이 두 가지 방법은 각각 고유한 장점과 사용 목적이 있기 때문에, 상황에 따라 적절히 선택해야한다! 📌객체생성 패턴 정리1. new 키워드를 사용한 기본 객체 생성가장 기본적인 객체 생성 방법은 new 키워드를 사용하는 것이다.User user = new User();장점직관적이고 쉽게 사용할 수 있다단순 객체 생성 시 성능 면에서 유리하다단점가독성 부족: 생성자의 매개변수가 많아지면 각 값이 어떤 의미를 가지는지 파악하기 어렵다.유연성 부족: 생성자 이름은 항상 클래스 이름과 같아야 하므로, 다양한 객체를 생성하기 위한 이름을 제공하지 못한다. 2. 정적 팩토리 매서드정적 팩토리 매서드는 객체..
객체생성 패턴 정리 - 빌더 패턴,정적 팩토리 매서드객체를 생성하는 방법에는 여러 가지가 있지만, 그 중에서도 정적 팩토리 매서드와 빌더 패턴이 자주 사용된다.이 두 가지 방법은 각각 고유한 장점과 사용 목적이 있기 때문에, 상황에 따라 적절히 선택해야한다! 📌객체생성 패턴 정리1. new 키워드를 사용한 기본 객체 생성가장 기본적인 객체 생성 방법은 new 키워드를 사용하는 것이다.User user = new User();장점직관적이고 쉽게 사용할 수 있다단순 객체 생성 시 성능 면에서 유리하다단점가독성 부족: 생성자의 매개변수가 많아지면 각 값이 어떤 의미를 가지는지 파악하기 어렵다.유연성 부족: 생성자 이름은 항상 클래스 이름과 같아야 하므로, 다양한 객체를 생성하기 위한 이름을 제공하지 못한다. 2. 정적 팩토리 매서드정적 팩토리 매서드는 객체..
2024.12.01 -
🌵 문제🌵 입출력 예시예제 입력 1 3CCPCCPPPC예제 출력 1 3예제 입력 2 4PPPPCYZYCCPYPPCC예제 출력 2 4예제 입력 3 5YCPZYCYZZPCCPPPYCYZCCPPZZ예제 출력 3 4 🌵 문제 풀이 모든 경우의 수를 탐색하여 최적의 결과를 찾는 완전 탐색 기법을 사용했다.접근 방법교환 가능한 모든 경우를 탐색한다.가로로 인접한 두 사탕을 교환세로로 인접한 두 사탕을 교환교환 후, 가장 긴 연속된 사탕의 갯수를 계산한다.가로 탐색 -> 한 행씩 검사해서, 연속된 같은 색상의 사탕 갯수 세기세로 탐색 -> 한 열씩 검사해서, 연속된 같은 색상의 사탕 갯수 세기모든 경우의 결과 중 최댓값을 출력구현 단계search 함수 : 2차원 배열을 입력받아 가로와 세로에서 각각 최대 연속..
[백준 3085] 사탕 게임 - Python🌵 문제🌵 입출력 예시예제 입력 1 3CCPCCPPPC예제 출력 1 3예제 입력 2 4PPPPCYZYCCPYPPCC예제 출력 2 4예제 입력 3 5YCPZYCYZZPCCPPPYCYZCCPPZZ예제 출력 3 4 🌵 문제 풀이 모든 경우의 수를 탐색하여 최적의 결과를 찾는 완전 탐색 기법을 사용했다.접근 방법교환 가능한 모든 경우를 탐색한다.가로로 인접한 두 사탕을 교환세로로 인접한 두 사탕을 교환교환 후, 가장 긴 연속된 사탕의 갯수를 계산한다.가로 탐색 -> 한 행씩 검사해서, 연속된 같은 색상의 사탕 갯수 세기세로 탐색 -> 한 열씩 검사해서, 연속된 같은 색상의 사탕 갯수 세기모든 경우의 결과 중 최댓값을 출력구현 단계search 함수 : 2차원 배열을 입력받아 가로와 세로에서 각각 최대 연속..
2024.11.08 -
백준 '로봇청소기'에서 호되게 당했기 때문에, 유사문제로 풀어봤다.lv0이라 쉬울 줄 알았는데 접근하기 꽤나 어려웠다..이런 유형 왜이렇게 어렵지..💫문제 💫동작 원리상,하,좌,우로 이동하는 케이스에 따라서, 인덱스 i,j가 각각 고정/증가/감소 세 가지 경우의 형태로 움직이기 때문에, 케이스 분류가 꼭 필요했다.그 과정에서 핵심은,경계값을 동적으로 조정하여 위쪽, 아래쪽, 왼쪽, 오른쪽의 경계를 좁혀 나가면서 숫자를 배열에 나선형으로 채우는 것이었다. 경계 설정 (top, bottom, left, right):top: 현재 배열의 위쪽 경계.bottom: 현재 배열의 아래쪽 경계.left: 현재 배열의 왼쪽 경계.right: 현재 배열의 오른쪽 경계. 방향 설정 및 경계 조정 오른쪽 이동 (righ..
[프로그래머스 LV0] 정수를 나선형으로 배치하기백준 '로봇청소기'에서 호되게 당했기 때문에, 유사문제로 풀어봤다.lv0이라 쉬울 줄 알았는데 접근하기 꽤나 어려웠다..이런 유형 왜이렇게 어렵지..💫문제 💫동작 원리상,하,좌,우로 이동하는 케이스에 따라서, 인덱스 i,j가 각각 고정/증가/감소 세 가지 경우의 형태로 움직이기 때문에, 케이스 분류가 꼭 필요했다.그 과정에서 핵심은,경계값을 동적으로 조정하여 위쪽, 아래쪽, 왼쪽, 오른쪽의 경계를 좁혀 나가면서 숫자를 배열에 나선형으로 채우는 것이었다. 경계 설정 (top, bottom, left, right):top: 현재 배열의 위쪽 경계.bottom: 현재 배열의 아래쪽 경계.left: 현재 배열의 왼쪽 경계.right: 현재 배열의 오른쪽 경계. 방향 설정 및 경계 조정 오른쪽 이동 (righ..
2024.10.19 -
🍫문제그냥 차근차근 조건에 따라서 구현하면 되는 문제였다. 이 문제는 2017년 상반기 삼성 그룹 오후 1번 문제이다. LG CNS기출과 유사한 문제이기도 하다.추천 사이트에서 발견했는데,,,,,결국 딜레마에 빠져 해결하지 못했다. 흑흑... 반성을 좀 해보자면1. 어?쉽네? 하고 문제를 제대로 설계하지 않고 문제풀이에 뛰어들었다.->그러다보니 하드코딩의 늪에 빠짐...2. 아직 재귀호출,반복문,조건문을 적절히 언제 써야하는지 잘 안잡혀 있는 느낌이다.. -> 컨디션 좋으면 잘풀리고, 안좋으면 이상한 길에 빠져버림(특히 재귀호출) -> 실전 코테는 컨디션이 좋을 리가 없다는 거! 더 연습하자 +골드의 벽은 높다 🍫풀이로봇청소기의 동작 원리는 아래와 같다1. 현재 칸이 아직 청소되지 않은 경우, 현..
[백준 14503] 로봇청소기 (구현,시뮬레이션)🍫문제그냥 차근차근 조건에 따라서 구현하면 되는 문제였다. 이 문제는 2017년 상반기 삼성 그룹 오후 1번 문제이다. LG CNS기출과 유사한 문제이기도 하다.추천 사이트에서 발견했는데,,,,,결국 딜레마에 빠져 해결하지 못했다. 흑흑... 반성을 좀 해보자면1. 어?쉽네? 하고 문제를 제대로 설계하지 않고 문제풀이에 뛰어들었다.->그러다보니 하드코딩의 늪에 빠짐...2. 아직 재귀호출,반복문,조건문을 적절히 언제 써야하는지 잘 안잡혀 있는 느낌이다.. -> 컨디션 좋으면 잘풀리고, 안좋으면 이상한 길에 빠져버림(특히 재귀호출) -> 실전 코테는 컨디션이 좋을 리가 없다는 거! 더 연습하자 +골드의 벽은 높다 🍫풀이로봇청소기의 동작 원리는 아래와 같다1. 현재 칸이 아직 청소되지 않은 경우, 현..
2024.09.16 -
🌰문제RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자.1번 집의 색은 2번 집의 색과 같지 않아야 한다.N번 집의 색은 N-1번 집의 색과 같지 않아야 한다.i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다.입력첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 같..
[백준 1149] RGB거리 (DP)🌰문제RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자.1번 집의 색은 2번 집의 색과 같지 않아야 한다.N번 집의 색은 N-1번 집의 색과 같지 않아야 한다.i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다.입력첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 같..
2024.09.14 -
📌브라우저의 렌더링 과정 이해하기웹 개발자라면 한 번쯤 "브라우저가 어떻게 웹페이지를 렌더링할까?"라는 질문을 받아본 적이 있을 것이다.브라우저의 렌더링 과정에 대해 자세히 살펴보며, 웹페이지가 사용자에게 어떻게 표시되는지를 정리해보자! 📌브라우저와 렌더링 엔진브라우저는 사용자가 요청한 자원을 서버에서 받아와 화면에 표시하는 역할을 한다. 이 자원들은 HTML 문서, 이미지, PDF 파일 등 다양한 형태를 가질 수 있으며, 브라우저는 이러한 자원을 렌더링 엔진을 통해 화면에 표시한다. 각 브라우저는 고유한 렌더링 엔진을 사용하며, 예를 들어 크롬은 블링크(Blink), 사파리는 웹킷(Webkit), 파이어폭스는 게코(Gecko)라는 렌더링 엔진을 사용한다. 렌더링 엔진HTML, CSS, JavaSc..
브라우저의 렌더링 과정📌브라우저의 렌더링 과정 이해하기웹 개발자라면 한 번쯤 "브라우저가 어떻게 웹페이지를 렌더링할까?"라는 질문을 받아본 적이 있을 것이다.브라우저의 렌더링 과정에 대해 자세히 살펴보며, 웹페이지가 사용자에게 어떻게 표시되는지를 정리해보자! 📌브라우저와 렌더링 엔진브라우저는 사용자가 요청한 자원을 서버에서 받아와 화면에 표시하는 역할을 한다. 이 자원들은 HTML 문서, 이미지, PDF 파일 등 다양한 형태를 가질 수 있으며, 브라우저는 이러한 자원을 렌더링 엔진을 통해 화면에 표시한다. 각 브라우저는 고유한 렌더링 엔진을 사용하며, 예를 들어 크롬은 블링크(Blink), 사파리는 웹킷(Webkit), 파이어폭스는 게코(Gecko)라는 렌더링 엔진을 사용한다. 렌더링 엔진HTML, CSS, JavaSc..
2024.08.27 -
🍉문제 🍉문제 해석숙제 마감일과 제출일이 주어졌을 때, 제출일이 마감일에 비해 얼마나 이전인지 또는 이후인지를 판단하고, 결과를 적절히 출력하는 문제이다. ** 제출일에는 연도가 명시되지 않기 때문에, 가장 가까운 연도를 추정하여 비교를 수행하도록 하였다!이 부분이 가장 까다로웠던 부분인 듯 하다. 🍉문제 접근법1. 윤년과 월별 일수 처리 윤년을 고려하여 월별 일수를 정확히 계산해야 했다.2월의 경우, 윤년에 따라 28일 또는 29일을 반환하는 것을 잊지 말자!days_in_month 함수로 구현하였다.thirty_days_month = [4, 6, 9, 11]thirty_one_days_month = [1, 3, 5, 7, 8, 10, 12]def days_in_month(month, year..
[백준 2730] 오늘은 OS 숙제 제출일🍉문제 🍉문제 해석숙제 마감일과 제출일이 주어졌을 때, 제출일이 마감일에 비해 얼마나 이전인지 또는 이후인지를 판단하고, 결과를 적절히 출력하는 문제이다. ** 제출일에는 연도가 명시되지 않기 때문에, 가장 가까운 연도를 추정하여 비교를 수행하도록 하였다!이 부분이 가장 까다로웠던 부분인 듯 하다. 🍉문제 접근법1. 윤년과 월별 일수 처리 윤년을 고려하여 월별 일수를 정확히 계산해야 했다.2월의 경우, 윤년에 따라 28일 또는 29일을 반환하는 것을 잊지 말자!days_in_month 함수로 구현하였다.thirty_days_month = [4, 6, 9, 11]thirty_one_days_month = [1, 3, 5, 7, 8, 10, 12]def days_in_month(month, year..
2024.08.26 -
🌵 문제 🌵문제풀이문제의 목표는 입력(단어 혹은 구(둘 이상의 단어))이 주어졌을 때, 단축키를 지정하는 것이다.단축키를 지정하는 기준은 아래와 같다.1. 단축키는 첫 글자를 우선적으로 검사하여 아직 사용되지 않은 알파벳을 찾아서 지정한다.2. 만약 첫 글자가 모두 사용되었다면, 각 단어의 글자들을 검사하여 단축키를 지정한다. 단축키를 지정하기 위한 로직은 다음과 같이 세웠다.단축키 목록 초기화: 이미 사용된 단축키를 기록할 리스트를 만들기각 입력 처리첫 글자가 이미 사용된 단축키 목록에 없는 경우 => 해당 글자를 단축키로 지정모든 단어의 첫 글자가 이미 사용된 경우=> 각 글자를 검사하여 사용되지 않은 단축키를 찾아서 적용어떤 것도 지정할 수 없는 경우, 해당 옵션을 원래대로 출력 🌵코드N ..
[백준 1283] 단축키 지정(구현,문자열) - Python🌵 문제 🌵문제풀이문제의 목표는 입력(단어 혹은 구(둘 이상의 단어))이 주어졌을 때, 단축키를 지정하는 것이다.단축키를 지정하는 기준은 아래와 같다.1. 단축키는 첫 글자를 우선적으로 검사하여 아직 사용되지 않은 알파벳을 찾아서 지정한다.2. 만약 첫 글자가 모두 사용되었다면, 각 단어의 글자들을 검사하여 단축키를 지정한다. 단축키를 지정하기 위한 로직은 다음과 같이 세웠다.단축키 목록 초기화: 이미 사용된 단축키를 기록할 리스트를 만들기각 입력 처리첫 글자가 이미 사용된 단축키 목록에 없는 경우 => 해당 글자를 단축키로 지정모든 단어의 첫 글자가 이미 사용된 경우=> 각 글자를 검사하여 사용되지 않은 단축키를 찾아서 적용어떤 것도 지정할 수 없는 경우, 해당 옵션을 원래대로 출력 🌵코드N ..
2024.08.25