알고리즘
-
같은 숫자는 싫어 [문제 설명] [문제 풀이] 주어진 배열의 첫번째 값은 무조건 결과 배열에 들어간다. 배열의 첫번째 값을 가장 먼저 result 배열에 삽입한 후, 다른 값들과 비교하기 위한 값으로 사용한다. 반복문을 통해 배열을 순회하면서 flag값과 다르다면 중복되지 않는 값이기에 해당 값을 결과 배열에 넣고 만약 flag값과 동일하다면 중복된 값이기에 배열에 넣지 않는다. 이를 통해, 결과 배열을 얻는다. [소스 코드]
[프로그래머스]Level 1 같은 숫자는 싫어같은 숫자는 싫어 [문제 설명] [문제 풀이] 주어진 배열의 첫번째 값은 무조건 결과 배열에 들어간다. 배열의 첫번째 값을 가장 먼저 result 배열에 삽입한 후, 다른 값들과 비교하기 위한 값으로 사용한다. 반복문을 통해 배열을 순회하면서 flag값과 다르다면 중복되지 않는 값이기에 해당 값을 결과 배열에 넣고 만약 flag값과 동일하다면 중복된 값이기에 배열에 넣지 않는다. 이를 통해, 결과 배열을 얻는다. [소스 코드]
2022.11.27 -
최소직사각형 [문제 설명] [문제 풀이] 가로 길이와 세로 길이가 나누어져 있지만, 사실 각각의 명함에서 긴 변과 짧은 변들을 묶은 후, 해당 그룹에서 가장 긴 변을 구하면 되는 문제이다. 왜냐하면 명함은 가로였던 것이 단순히 옆으로 돌리면 또 다른 가로가 되는 것이다. 즉, 가로 세로라는 말이 의미가 없다. 각 명함의 가로 세로를 정렬한 후, 짧은 것을 low_num 배열에, 긴 것을 hight_num 배열에 삽입했다. 이후, 각 배열을 정렬해 가장 긴 항목들끼리 곱셈 연산을 하면 된다. [소스 코드]
[프로그래머스]Level 1 최소직사각형최소직사각형 [문제 설명] [문제 풀이] 가로 길이와 세로 길이가 나누어져 있지만, 사실 각각의 명함에서 긴 변과 짧은 변들을 묶은 후, 해당 그룹에서 가장 긴 변을 구하면 되는 문제이다. 왜냐하면 명함은 가로였던 것이 단순히 옆으로 돌리면 또 다른 가로가 되는 것이다. 즉, 가로 세로라는 말이 의미가 없다. 각 명함의 가로 세로를 정렬한 후, 짧은 것을 low_num 배열에, 긴 것을 hight_num 배열에 삽입했다. 이후, 각 배열을 정렬해 가장 긴 항목들끼리 곱셈 연산을 하면 된다. [소스 코드]
2022.11.27 -
3진법 뒤집기 [문제 설명] [문제 풀이] 주어진 수를 String형 및 3진법으로 변환 후, 해당 수를 그대로 reverse함수를 통해 뒤집는다. 이후, 해당 수를 다시 10진법으로 변환하면 정답이 된다. [소스 코드]
[프로그래머스]Level 1 3진법 뒤집기3진법 뒤집기 [문제 설명] [문제 풀이] 주어진 수를 String형 및 3진법으로 변환 후, 해당 수를 그대로 reverse함수를 통해 뒤집는다. 이후, 해당 수를 다시 10진법으로 변환하면 정답이 된다. [소스 코드]
2022.11.27 -
하샤드 수 [문제 설명] [문제 풀이] 주어진 매개변수를 String으로 나눈 후, 해당 값들을 다시 int형으로 변환해 계산을 진행하면 된다. 주어진 수를 각각의 자리를 더한 값으로 나누었을 때, 나누어 떨어지면 하샤드 수이다. [소스 코드]
[프로그래머스]Level 1 하샤드 수하샤드 수 [문제 설명] [문제 풀이] 주어진 매개변수를 String으로 나눈 후, 해당 값들을 다시 int형으로 변환해 계산을 진행하면 된다. 주어진 수를 각각의 자리를 더한 값으로 나누었을 때, 나누어 떨어지면 하샤드 수이다. [소스 코드]
2022.11.27 -
콜라츠 추측 [문제 설명] [문제 풀이] 특정 알고리즘을 사용하거나, 문자열을 다루는 등의 문제가 아닌 주어진 문제를 구현할 수 있는지에 대한 문제이다. 주어진 방법으로 순차적으로 풀어나가면 정답을 구할 수 있다. 단 주의해야 하는 것은 해당 계산을 이어가다보면 int형의 범위를 넘어서 overflow가 발생하는 경우가 있다. 해당 경우를 예외처리하거나 매개 변수의 형변환을 미리 진행하는 과정이 필요하다. [소스 코드]
[프로그래머스]Level 1 콜라츠 추측콜라츠 추측 [문제 설명] [문제 풀이] 특정 알고리즘을 사용하거나, 문자열을 다루는 등의 문제가 아닌 주어진 문제를 구현할 수 있는지에 대한 문제이다. 주어진 방법으로 순차적으로 풀어나가면 정답을 구할 수 있다. 단 주의해야 하는 것은 해당 계산을 이어가다보면 int형의 범위를 넘어서 overflow가 발생하는 경우가 있다. 해당 경우를 예외처리하거나 매개 변수의 형변환을 미리 진행하는 과정이 필요하다. [소스 코드]
2022.11.27 -
[문제 설명] [문제 풀이] 최솟값을 무엇인지 계산 후, 기존 배열과 최솟값을 비교한다. 만약 비교한 값이 최솟값이라면 결과를 저장할 배열에 저장하지 않고 최솟값이 아니라면 배열에 저장하고 전체 순회가 끝나면 결과값을 반환한다. [소스 코드]
[프로그래머스]Level 1 제일 작은 수 제거하기[문제 설명] [문제 풀이] 최솟값을 무엇인지 계산 후, 기존 배열과 최솟값을 비교한다. 만약 비교한 값이 최솟값이라면 결과를 저장할 배열에 저장하지 않고 최솟값이 아니라면 배열에 저장하고 전체 순회가 끝나면 결과값을 반환한다. [소스 코드]
2022.11.25 -
[문제 설명] [문제 풀이] 주어진 수에 루트를 취했을 때, 딱 떨어진다면 주어진 수 n은 제곱근이고 소수부가 존재한다면 제곱근이 아니다. 이를 활용해 문제를 풀었다. 우선 주어진 수에 루트 함수 sqrt()를 취하고 long으로 형변환함으로써 정수부를 구했다. 이후, 루트를 취한 값에서 정수부를 뺌으로써 소수부를 구한다. 만약 소수부가 0이라면 주어진 수 n은 제곱근이고 아니라면 제곱근이 아니다. [소스 코드]
[프로그래머스]Level 1 정수 제곱근 판별[문제 설명] [문제 풀이] 주어진 수에 루트를 취했을 때, 딱 떨어진다면 주어진 수 n은 제곱근이고 소수부가 존재한다면 제곱근이 아니다. 이를 활용해 문제를 풀었다. 우선 주어진 수에 루트 함수 sqrt()를 취하고 long으로 형변환함으로써 정수부를 구했다. 이후, 루트를 취한 값에서 정수부를 뺌으로써 소수부를 구한다. 만약 소수부가 0이라면 주어진 수 n은 제곱근이고 아니라면 제곱근이 아니다. [소스 코드]
2022.11.25 -
정수 내림차순으로 배치하기 [문제 설명] [문제 풀이] Long형 매개변수를 String으로 변환하고 split()함수를 통해 1자리씩 자른다. String 배열을 내림차순으로 정렬 후, string -> long형으로 변환하면 된다. [소스 코드]
[프로그래머스]Level 1 정수 내림차순으로 배치하기정수 내림차순으로 배치하기 [문제 설명] [문제 풀이] Long형 매개변수를 String으로 변환하고 split()함수를 통해 1자리씩 자른다. String 배열을 내림차순으로 정렬 후, string -> long형으로 변환하면 된다. [소스 코드]
2022.11.25