본문 바로가기

Java27

Delegation이 무엇인지 아시나요? (상속과 구성까지 알아보자) 1. 요약 2. 상속과 구성 2-1. 상속 2-2. 상속의 문제점 2-3. 구성 2-4. 구성의 문제점 2-5. 그렇다면 무엇을 사용해야 할까? 3. 결합을 더 느슨하게 하기 4. Delegation 4-1. 개념 4-2. 예제 4-3. Delegation을 쉽게 사용하는 방법 1. 요약 🧑‍💻: Delegation이 무엇인지 아시나요? 👨🏻‍🦱: Delegation은 어떤 기능을 자신이 처리하지 않고 다른 객체에 위임시켜 그 객체가 일을 처리하도록 하는 것입니다. Java와 달리 Kotlin은 by 예약어를 통해 Delegation을 편하게 사용할 수 있습니다. +) 다른 클래스를 private 인스턴스 변수로 가지고 있는 Composition과 다른 클래스의 메서드를 호출하여 결과를 반환하는 Forw.. 2022. 7. 11.
백준 2146번 다리 만들기 1. 2146번 다리 만들기 1-1. 링크 1-2. 문제 해석 1-3. 코드 및 해설 1. 2146번 다리 만들기 1-1. 링크 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 1-2. 문제 해석 섬에서 섬을 잇는 다리를 1개 놓는다고 했을 때 가장 짧은 다리의 길이를 구하는 문제이다. 위 예시에서 색칠된 부분이 섬이고 색칠되지 않은 부분이 바다라고 보면 된다. 위 예시에서는 깃발 사이에 다리를 건설했을 때 가장 짧은 길이의 다리를 만들 수 있다. 위 사진은 위쪽 깃발 위치를 기준으로 다리를 건설했을 때 길이가 얼.. 2021. 12. 15.
백준 1697번 숨바꼭질 1. 1697번 숨바꼭질 1-1. 링크 1-2. 문제 해석 1-3. 코드 및 해설 1. 1697번 숨바꼭질 1-1. 링크 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 1-2. 문제 해석 BFS 문제인데 2차원이 아니라 그냥 x좌표만 있는 문제라고 보면 된다. 움직일 수 있는 방법이 -1, +1, *2 이렇게 3가지가 있다. 수빈이와 동생이 0과 100,000에도 서있을 수 있다는 점에 유의하자. 이 2가지만 신경 쓰면 쉽게 풀 수 있는 문제이다. 나는 두 번째 유의점을 신경 못써.. 2021. 12. 8.
백준 7576번 토마토, 7569번 토마토(3차원 버전) 1. 7576번 토마토 1-1. 링크 1-2. 문제 해석 1-3. 코드 및 해설 2. 7569번 토마토 1-1. 링크 1-2. 문제 해석 1-3. 코드 및 해설 1. 7576번 토마토 1-1. 링크 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 1-2. 문제 해석 처음에는 "음? 이거 뭐 특별한 로직없이 삼중 포문 쓰면 풀리지 않나?"라고 생각했다. 모든 칸들을 반복문으로 돌면서 상하좌우로 퍼지게하고... 하루가 지날 때마다 다 채워졌는지 체크하면 될 거라고 생각했는데 답은 잘 나오지만 시간.. 2021. 12. 7.
1952번 - 수영장 1. 문제 1-1. 링크 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1-2. 문제 해석 1일권 / 1달권 / 3달권 / 1년권 이용 요금과 수영장을 각 달마다 몇 번이나 갈지 그 계획이 주어졌을 때 가장 적은 비용으로 수영장을 이용할 수 있는 방법과 그 비용을 구하는 문제이다. 나는 완전 탐색을 이용해서 풀었다. 우선 나는 인덱스의 크기를 +1 만큼 잡아줬다. 0부터 시작하면 헷갈리니까! 표를 보면 1일권만 사용했을 때 드는 비용과 1달권만 사용했을 때 드는 비용을 확인할 수 있다. 우리는 표를 통해 1달권 요금 < 이용 일수 * 1일권.. 2021. 9. 14.