728x90
반응형

Java 28

[LeetCode][Java] 110. Balanced Binary Tree

문제에 대한 오해가 있어서.. 역대급으로 틀려버렸다.. 역시 오해는 금물!! 문제 left와 right 높이 차이가 1보다 크게 나면 false, 아니면 true를 return 하는 문제! 근데 나는 여기서 root의 left , right 로 생각하면 되는 줄 알고.. 계속 root의 왼쪽과 오른쪽의 최대 높이를 구하고 그 두 개를 비교했다.. 나의 오답 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode..

[LeetCode][Java] 101. Symmetric Tree

약간 세개를 풀면서 이제 재귀함수 에 대한 감을 잡아가고 있다. 간단한거에서 생각을 잘 못해서 너무 많이 틀려버렸지 뭐얌? 담에 더 잘할거니까 !! 화이팅.. 문제 대칭인지 아닌지 찾아내는 문제. 위 사진 처럼 반을 나누었을 때 대칭이 되면 됨. 딱 보자마자 왼쪽 오른쪽 나눠서 재귀함수로 풀면 되겠다! 라고 생각은 들었다.! 하지만 이제 그 뒤에 푸는 방법이 따라줘야되는데,.. 큼.. 데이터 데이터는 요러케! 왼쪽 팔이랑 오른쪽 팔이 있음! /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) ..

[디자인패턴] 템플릿 메소드 패턴 | Template Method Pattern | 안드로이드 예제

지난 게시글에서 퍼사드 패턴을 출근 준비로 표현했던 것 처럼..! 이번 템플릿 메소드 패턴도 동일하게 정리를 해봐야겠다.! 출근 준비에 대한 것을 큰 카테고리? 로 보면 알람 -> 씻기 -> 옷입기 -> 이동수단 으로 볼 수 있다. A와 B의 준비 단계를 보자! A : 알람 -> 씻기 -> 옷입기 (원피스) -> 이동수단 (자동차) B : 알람 -> 씻기 -> 옷입기 (파란티) -> 이동수단 (버스) 이다.! 여기서 A,B가 다르지 않고 동일한 과정은 빨간색으로, 다른 과정은 파란색으로 표시를 해보았다. 이를 코드로 표현을 해보자.! "A" 의 준비 과정 class ReadyToWorkA { public void start(TextView tv) { alarm(tv); wash(tv); clothes(t..

[디자인패턴] 데코레이터 패턴 | Decorator pattern

오늘 공부해 볼 패턴은 데코레이터 패턴! 데코레이터 패턴 이란? 데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. (출처 : 위키백과) 정의는 위와 같습니다. 제가 이해한 것을 바탕으로 데코레이터 패턴을 재정의 한다면, 기본 틀을 바탕으로 그 위에 살을 추가하여 점점 커지게 만드는 패턴 이라고 할 수 있을 것 같습니다. 예를 들어 설명해보겠습니다. 샌드위치 집에 방문했다고 생각을 합시다. 메뉴에서 샌드위치를 고르게 됩니다. 기본 샌드위치, 햄치즈 샌드위치 등등.. 그 뒤에 무엇을 결정하죠? 바로바로~ 토핑을 추가할지 말지 결정하게 됩니다. 위 사진처럼 기..

[백준] 1655번 가운데를 말해요

안녕하세요~! 오늘은~ 1655번! 이 문제를 풀면서도 나는 얼마나 멍청한가를 깨달았던.. 분명히 대학교에서 배운 것인데.. 왜 기억이 안나는 것인가 ㅠ_ㅠ 난 정말 멍청이야! 이래서 공부는 꾸준히 해야하나보다.. 이제 진짜 내 목표량은 채워야지! 유튜브 설명 첨부드립니다! youtu.be/DUBAgZkB0jM 일단 오늘의 문제와 입력, 출력 값이다. 근데 이것이 중요한게 아니다.... 바로바로 여기서 제일 중요한 것은!!!! 요 시간제한이다! 문제만 보고 생각이 든것은.. 입력을 받고 > array에 추가해서 > sort를 하면 되지 않을까였다. 그래서 한 첫번째 도전! 사실 세번째? 도전이다. 처음에 array로 해봤는데 메모리초과?가 발생해서, 그 다음은 vector로 그 다음은 boolean 값을..

[백준] 2839번 JAVA 설탕 배달

이 문제는 거의 2일? 적게 생각하긴 했지만.. 계속 생각해도 생각이 나지 않아 엄청 답답해 하고 있었다.. 그러다 결국 오늘 글을 쓰기 위해 유튜브를 급히 보았다. 세상.. 엄청 똑똑하신 분들이 많던데.. 보다가 엄청 띠용하는 분의 영상을 보고 설명을 해보고자 한다. DP란 결국 규칙성을 찾는 문제인데 규칙성 찾기가 너무나 어렵다 ㅠㅠ 우선 문제는 다음과 같다 가장 적은 개수의 봉지로 설탕을 나누기 위해서는 5봉지가 많아야 된다. 그래서 설탕을 5개씩 나열해보면 위 그림과 같이 나열 할 수 있다. 그럼 5개로 나누었을 때 경우의 수는 설탕이 0개, 1개, 2개, 3개, 4개가 남는 경우가 있다. 그림으로 표현하면 이러한 경우가 있다. 이때를 봉지로 계산해보면! 한개의 설탕이 남는 경우, 위와 같이 5개..

[백준] 11726번 타일 채우기

예전에 취업 준비 하면서 공부 했을때도 잘 못했던 DP 문제를 공부하기 위해 DP를 다시 열었다.. 근데 여전히 하~나도 예전보다 어쩌면 더 잘 모르겠다.. 그래서 쉬운거?부터 천천히 공부해봐야지! 문제입니다! 문제에 대해 하나하나 채워보았다. 채우게 되면 위와 같은 모양이 되는데, 여기에는 규칙이 있다. 2x3의 타일을 채우는 방법을 전부 나열하게 되면, 아래와 모양이 되는데 이것은 1번에 2개의 타일을 더하는 방법과 2번에 1개의 타일을 더하는 방법으로 표현 할 수 있다. 여기서 첫번째 세번째 모양이 같아서 이 것을 제외한 3가지 방법이 2x3을 채우는 방법의 개수가 된다. 그럼 이제 규칙성을 눈치챘을까? 나는 이때도 몰라서 한 번 더 채워보았다. 2x4를 채우는 방법을 전부 나열하게 되면, 아래와 ..

[Java] 개발 환경 설치 (JDK 설치, 환경변수 설정, 이클립스 설치)

오늘은 PC에 Java 환경을 설정하는 방법을 적어보아야겠다. 이제 슬슬 Java 공부를 따로 해야겠다고 생각했는데, 집 PC는 새거라 아무런 개발 환경이 설정이 안되어있기 때문에, 하면서 블로그에 정리해야지! 1. JDK 설치 https://www.oracle.com/technetwork/java/javase/downloads/index.html JDK 다운로드 클릭 후 PC환경에 맞는 버전을 다운받습니다. 다운로드 후 exe 파일 실행으로 설치해주시면 됩니다. 설치하면서 중간에 경로를 변경해도 되고, 경로 변경을 안하면 기본 경로는 C:\Program Files\Java\jdk-15 가 됩니다. 설치 된 것을 확인 할 수 있습니다. 2. 환경 변수 설정 설정에서 검색을 통해 환경 변수 편집을 진행하면..

WORK/Window 2020.09.28
728x90
반응형