본문 바로가기
반응형

전체 글121

[Java][프로그래머스][Level 1] 자연수 뒤집어 배열로 만들기 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 생각 전에 풀었던 자릿수 더하기와 비슷한 문제이다. 먼저 n을 10으로 나눈 나머지를 구해 첫 배열값에 넣어주고 n = n/10을 하여 자릿수를 하나 줄여준다. 위 과정을 n이 0이 될 때까지 반복하면 끝날 것이다. 하지만 여기서 한 가지 더 생각해줘야 하는 것이 있다. 그것은 제한 조건!! n의 범위가 10,000,000,000 (백 억) 이다. 백 억은 int형의 범위를 가뿐하게 넘을 것이다. 이 기회에 byte, short, int, long의 범위를 살펴보자! byte -128 ~ 12.. 2019. 4. 9.
[Java][자료구조] Tree (1) - 트리의 정의와 특성, 이진트리에 대하여 트리란? 트리라는 이름이 나온 이유는 실제 나무를 거꾸로 세워 놓은 듯한 모양이라서 트리라고 부른다고 한다. 우리는 트리를 배우기 전에 아마 단순한 배열 리스트부터 단순 연결 리스트 이중 연결 리스트 등을 봐왔을 것이다. 그렇다면 이런 것들도 있는데 왜 트리라는 자료구조가 나온 것 일까? 일반 배열에서는 삽입이나 삭제를 하는데 O(N)의 시간이 걸린다. 첫 번째 배열에 삽입하는 경우 나머지 모든 요소들을 뒤로 한 칸씩 미뤄야 하므로 최악 시간 복잡도가 O(N)이 나온다. 하지만 트리는 편향 트리가 아닌 이상 일반적인 트리에서는 O(logN) 정도의 시간으로 확 줄여진다. 또 트리는 계층구조를 이루는 경우에 굉장히 좋다. 회사의 조직도를 생각해보면 맨 위에 회장님, 사장님이 있을 것이고, 부서별, 팀별로 .. 2019. 4. 8.
[Java][프로그래머스][Level 1] 자릿수 더하기 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 생각 % 연산자와 / 연산자를 사용하면 금방 풀 수 있는 문제이다. N = 123일 경우를 생각해보자. 각각의 자릿수를 분리해야 하므로 123 % 10을 해주면 3이 나온다. 이 3을 answer에 더해놓고 N = 123을 10으로 나누면 일의 자리 수가 없어져 12가 된다. 이런 식으로 하여 N이 0이 될 때 까지 % /연산자를 써주고 나온 한자리 수를 더해주면 완성 될 것이다. 이런 % / 을 사용해서 푸는 문제는 회문수 구하기, 지폐 별 금액.. 2019. 4. 7.
[Java][프로그래머스][Level 1] 이상한 문자 만들기 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다. 생각 글을 쓰면서 내가 처음에 푼 풀이를 봤는데.. 다시 봐도 이해가 되지 않는 코드였다. 그래서 처음부터 다시 풀기로 하였다. 처음엔 문제가 잘 이해가 안갔다. 예시를 보면서 이해하도록 하자. hello my friend의 예시를 들자. 문자의 전체 인덱스가 아니라 공백 별로 인덱스를 판단해야 한다!! 이 부분을 잘 생각하면 hello, my, fri.. 2019. 4. 6.
반응형