일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- BOJ
- Permutation
- recursive
- baekjoon
- algorithm
- Lv.1
- ProblemSolving
- Java
- backtracking
- 백준
- BFS
- dynamic programming
- Lv.2
- 아기상어
- SW역량테스트
- 문자열
- dfs
- PS
- programmers
- Today
- Total
목록분류 전체보기 (16)
berry
public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 class Point{ public double x; public double y; } >> 위와 같은 클래스는 직접 필드에 접근할 수 있으므로 캡슐화의 이점을 살릴 수 없다. 따라서 모든 필드를 private으로 바꾸고 public 접근자의 getter/setter를 추가한다. 정리 : public 클래스는 절대 가변 필드를 노출해선 안된다. 불변 필드라면..크게 상관없긴 하다. package-private 클래스나 private 중첩 클래스는 불변 필드를 노출하는게 나은 경우도 있다. 변경 가능성을 최소화하라 >> 불변 클래스를 정의할 때 다섯 가지의 규칙을 따라야 한다. 객체의 상태를 변경하는 메서드를 제공하지 않는다. 클래..
*인스턴스화를 막으려거든 private 생성자를 사용하라 - 인스턴스를 만들어 사용하려는 용도의 클래스가 아니여도(유틸리티만을 담은 클래스) 생성자를 명시하지 않으면 컴파일러가 public타입의 생성자를 자동생성함. - private생성자를 추가하면 컴파일러가 기본으로 생성하는걸 막을 수 있음. *자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 - 여러 인스턴스를 지원해야하고 원하는 자원을 사용할 수 있게 해야 유연하게 여러 상황에 쓰일 수 있음. - 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주자. ex) public class SpellChecker{ private final Lexicon dictionary; public SpellChecker(Lexicon dictionary){ thi..
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제설명] 자연수 x를 y로 변환하려 한다. 방법은 3가지가 있는데 x에 n을 더합니다. x에 2를 곱합니다. x에 3을 곱합니다. x, y, n이 주어졌을 때 최소 연산의 횟수를 구하는 문제이다. 나는 BFS를 생각했는데 1
https://school.programmers.co.kr/learn/courses/30/lessons/1835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제설명] 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 달라 어떤 순서로 설지 정하는데 시간이 오래 걸렸다. 네오는 프로도와 나란히 서기를 원했고, 튜브가 뿜은 불을 맞은 적이 있던 라이언은 튜브에게서 적어도 세 칸 이상 떨어져서 서기를 원했다. 사진을 찍고 나서 돌아오는 ..
https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제풀이] 문제에서 주어진 조건대로 유효기간이 몇 개월인지를 HashMap에 저장해서 필요할 때 바로 꺼내 쓰게끔 했다. 근데 예시에서는 12개월까지만 나와있는데 1 12이면 년++ 일 == 0이면 월--하고 일을 28로 해줘야함!! [소스코드] import java.util.*; class Solution { static Map validate = new HashMap(); public st..
https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 간단하게 생각하면 전체 문서를 최소한의 크기로 드래그할 수 있는 직사각형 만들기 이다. 2차원 배열을 for문으로 순회할 때 행을 i로 두고 열을 j로 두는 편인데(사바사에요) 제일 왼쪽과 오른쪽 => j의 최소값과 최대값 제일 위쪽과 아래쪽 => i의 최소값과 최대값 이라 생각하고 Math.max(), Math.min()으로 값들을 각각 구한 뒤에 순서에 맞춰서 +1해줬음(드래그가 종..
https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이룹니다..
https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다. 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다. 한 번 사용한 카드는 다시 사용할 수 없습니다. 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니..
https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다. 이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다. 이모티콘 플러스 서비스 가입자를 최대한 늘리는 것. 이모티콘 판매액을 최대한 늘리는 것. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 이모티콘 할인 행사는 다음과 같은 방식으로 진행됩니다. n명의 카카오톡..
https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 조건 1. 문자열 s, skip, 정수 index가 주어진다. 조건 2. 문자열 s의 각 자리 알파벳을 index만큼 건너뛴 문자열을 리턴한다. 조건 3. 만약 s의 각 자리 알파벳이 skip에 포함되면 그 경우는 제외하고 건너뛴다. 조건 4. 알파벳이 'z'를 넘어가면 'a'로 돌아가게 해준다. s의 길이만큼 반복문을 돌리면서 c라는 char부터 체크한다. count 는 알파벳 각각이..