본문 바로가기
My Image
반응형

2017/1028

[TREE] 백준 1991 트리 순회(Tree Order) BackJoon #1991 - 트리순회(Tree Order) https://www.acmicpc.net/problem/1991 이번 시간은 트리 순회에 대해서 알아보겠습니다. 트리 순회는 3가지 방법으로 트리를 순회할 수 있습니다. 각 순회 방법에 따라 루트 탐색 순서가 어떤지 파악하면, 쉽게 암기 할 수 있습니다. 다음과 같은 트리가 있다고 가정하면, 각 순회 방법에 따라 탐색 순서가 바뀝니다. 1. 전위 순회 루트 - > Left -> Right // ABDCEFG 2. 중위 순회 Left -> 루트 -> Right // DBAECFG 3. 후위 순회 Left -> Right - > 루트 // DBEGFCA 이제 재귀함수 호출을 통해 전위, 중위, 후위 순회를 구현해보겠습니다. 입력 값이 알파벳이기 .. 2017. 10. 30.
[DP] 백준 2579 계단오르기(Climbing Stairs) BackJoon #2579 - 계단오르기(Climbing Stairs) https://www.acmicpc.net/problem/2579 대표적인 DP문제입니다. DP[N] 을 N개 계단을 계단오르기 규칙에 의해 얻은 가장 큰 점수라고 하겠습니다.N번째 계단은 무조건 밟아야 하기 때문에 N번째 계단이 1번 연속인 경우! N번째 계단이 2번연속인 경우! 이 2가지 경우를 나누어서 생각해 보겠습니다. 저는 1차원 배열로 DP를 잡고 풀었습니다. A 배열은 주어진 계단 점수를 담고 있습니다. N번째 계단이 1번 연속인 경우 N-1번째 계단은 필요 없고, N-2번째 계단의 총점을 합쳐야 합니다. 따라서.. DP[N] = DP[N-2] + A[N] N번째 계단이 2번 연속인 경우 N-1번째 계단은 밟아야 하고, .. 2017. 10. 26.
[DP] 백준 1912 연속합 (Continuous Sum) BackJoon #1912 - 연속합 (Continuous Sum) https://www.acmicpc.net/problem/1912 대표적인 DP문제입니다. DP[N] 을 N개 자리수에 연속합을 한 것들 중에서 가장 큰 연속합 이라고 하겠습니다.N자리에 해당하는 숫자가 이전 연속합에 속하는 경우와 속하지 않고 새롭게 연속합을 시작하는 경우 2가지로 나누어서 생각해 볼 수 있습니다. ARR 배열은 주어진 수열을 담고 있습니다. N자리에 숫자를 연속합에 합치면, 이득인 경우 DP[N] = DP[N-1] + ARR[N] N자리에 숫자를 연속합에 합치면, 이득을 얻지 못하는 경우 (새롭게 다시 연속합을 시작해야함) DP[N] = ARR[N] 그렇다면 이 2가지 경우를 분기 처리해야 하는데 어떻게 할까요???우.. 2017. 10. 26.
[Java] String vs StringBuffer vs StringBuilder 1. String immutable 불변클래스 초기 문자열을 할당 한 후 부터 수정이 불가하다.변경된것처럼 보이는 이유는, 내부적으로 변경된 문자열을 새롭게 만들기 때문이다. 즉 기존에 만들어 놓은 문자열을 수정하는 것이 아니라, 기존에 있는 문자열은 그대로 둔 상태에서, 변경된 문자열을 새롭게 만든다. 이 때문에 String을 기반 문자열을 substring이나 concat, toLowercase등의 메서드를 실행했을 때 매번 새롭운 String 객체가 만들어 지는 것이다. 이 대문에 시스템 자원(시간,메모리)등이 낭비될 여지가 있다. 그렇다면 왜? immutable기능을 String은 탑재하고 있을까? 바로 안정성 때문이다. 읽기 목적이 뚜렷한 경우 String 생성시 처음에만 문자열을 할당하고 그 .. 2017. 10. 26.
반응형