본문 바로가기

분류 전체보기352

[백준] 2233 사과나무 자바 문제 사과나무는 나무(tree)의 일종으로, 각각의 정점에 정확히 한 개의 사과가 있고, 모든 내부 정점(자식이 있는 정점)이 최소 두 개의 자식을 갖는 나무이다. 예를 들면 아래의 그림은 사과나무의 예이다. 나무같이 보이기 위해서 그림은 루트를 아래에 그린다. 이러한 사과나무에 서식하는 벌레를 생각해 보자. 이 벌레는 이 사과나무의 루트에서 DFS 순서로 탐색을 하게 된다. 자식이 여러 개인 경우에는 (뒤집혀진 그림에서) 왼쪽을 먼저 방문하게 된다. 이러한 탐색을 하면서, 새로운 노드를 방문할 때 0을, 모든 자식 노드를 방문하고 리턴할 때 1을 나열하면 하나의 이진 수열이 된다. 위의 그림으로 이진 수열을 만들면 다음과 같다. 0 0 0 1 0 1 1 0 1 1 a b c d e c d b e a 이.. 2022. 7. 5.
[프로그래머스] 행렬 테두리 회전하기 자바 문제 rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음과 같습니다. x1 행 y1 열부터 x2 행 y2 열까지의 영역에 해당하는 직사각형에서 테두리에 있는 숫자들을 한 칸씩 시계방향으로 회전합니다. 다음은 6 x 6 크기 행렬의 예시입니다. 이 행렬에 (2, 2, 5, 4) 회전을 적용하면, 아래 그림과 같이 2행 2열부터 5행 4열까지 영역의 테두리가 시계방향으로 회전합니다. 이때, 중앙의 15와 21이 있는 영역은 회전.. 2022. 7. 1.
[프로그래머스]부족한 금액 계산하기 자바 문제 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 접근 간단한 그리디 문제입니다. 조건을 만족할때까지 count를 계산해서 값을 더해준다음, 가지고 있는 돈에서 빼주면 됩니다. 코드 class Solution { public long solution(int price, int m.. 2022. 6. 29.
테스트 피라미드 오늘은 테스트 피라미드 구조에 대해서 공부 했습니다. 피라미드 구조인 이유는 test빈도수에 있습니다. 유닛 테스트는, 통합테스트보다 더 많이하고, 통합테스트는 UI테스트보다 더 많이하고... 그런식 입니다. UnitTest란 작은 컴포넌트, 하나의 기능을 하는 함수처럼 잘개 쪼개어 테스트해보는 것 입니다. Integration은 Unit테스트에서 이루어진 것들을 합쳤을때도 제대로 동작하는지 테스트 해보는 것 입니다. end-to-end(UI)는 통합테스트를 통해 이루어진 하나의 서비스를 테스트 해보는 과정입니다. 그림에서 보다시피 유닛테스트로 갈수록 컴포넌트가 작고, 기능이 적기 때문에 빠르게 테스트하며, 독립적이지만, 유저테스트로 갈수록 그 반대입니다. 2022. 6. 28.
[LeetCode] Min Cost Climbing Stairs 자바 문제 You are given an integer array cost where cost[i] is the cost of ith step on a staircase. Once you pay the cost, you can either climb one or two steps. You can either start from the step with index 0, or the step with index 1. Return the minimum cost to reach the top of the floor. 문제[번역] cost[] 정수 배열이 주어집니다. 당신은 cost값을 이용해 계단을 1칸또는 2칸 올라갈 수 있습니다. 당신은 0번째 계단이나 1번째 계단에서 시작합니다. 계단 꼭대기에 올라가기 위한 최.. 2022. 6. 27.
[LeetCode] Minimum Knight Moves 자바 문제 In an infinite chess board with coordinates from -infinity to +infinity, you have a knight at square [0, 0]. A knight has 8 possible moves it can make, as illustrated below. Each move is two squares in a cardinal direction, then one square in an orthogonal direction. Return the minimum number of steps needed to move the knight to the square [x, y]. It is guaranteed the answer exists. 문제[번역] 무.. 2022. 6. 23.
반응형