알고리즘(45)
-
[Programmers/Lv. 0] 코딩테스트 입문 Day 23 - 배열, 정렬, 문자열 (Python)
1. 특이한 정렬 (문제 설명, 제한사항, 입출력 예) 배열 numlist와 정수 n이 주어질 때, numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 구하라는 문제이다. 만약 n으로부터 거리가 같다면, 더 큰 수를 앞에 오도록 배치하면 된다. 단, numlist 배열은 중복된 원소를 갖지 않는다. n의 범위는 1 이상, 10,000 이하로 제한한다. (내가 생각한 풀이 과정) 이 문제는 내가 처음 생각했던 것과 다르게 몇 번의 "도약"이 필요했던 문제였다. 처음 생각한 풀이 과정과 나의 도약을 함께 따라가면서 이해해 보자. 우선, 처음 생각한 풀이 과정은 간단했다. n과 가까운 수를 구하기 위해 num에서 n을 빼 절댓값을 씌워준 후, 새로운 리스트 1에 추가하고, 값이 작은 순서대로 새로..
2023.06.06 -
[Programmers/Lv. 0] 코딩테스트 입문 Day 22 - dp, 수학, 조건문, 배열 (Python)
1. 저주의 숫자 3 (문제 설명, 제한사항, 입출력 예) 3의 배수와 숫자 3을 사용하지 않는 3x 마을 사람들이 있다. 주어진 정수 n을 3x 마을에서 사용하는 숫자로 바꿔서 구하라는 문제이다. (단, 정수 n의 범위는 1 이상, 100 이하) (내가 생각한 풀이 과정) 고려해줘야 하는 조건은 두 가지이다. 3의 배수일 경우 (answer % 3 == 0)와 숫자 3이 들어가 있는 경우 (str(answer).count('3')) 3x 마을은 위 조건의 경우 해당 숫자를 건너뛰기 때문에 +1을 해주면 된다. 주어진 수 n이 0이 될 때까지 1씩 빼보면서 해당 조건을 확인하면서 얼마큼을 건너뛰어야 하는지를 파악할 수 있다. (코드) 더보기 💡 내 코드 def solution(n): answer = 0 ..
2023.06.05 -
[Programmers/Lv. 0] 코딩테스트 입문 Day 21 - 문자열, 사칙연산, 시뮬레이션, 2차원배열, 수학, 배열 (Python)
1. 숨어있는 숫자의 덧셈 (2) (문제 설명, 제한사항, 입출력 예) 소문자, 대문자, 자연수로만 구성되어 있는 문자열 my_string이 주어질 때, my_string 안에 있는 자연수들의 합을 구하라는 문제이다. 단, 연속된 수는 하나의 숫자로 간주한다. my_string 문자열에 자연수가 없는 경우에는 0을 반환한다. (내가 생각한 풀이 과정) 어려운 코드는 아니지만, 설명이 조금 어려워 사용한 코드도 함께 설명을 하겠다. 우선, 문자열(my_string)을 하나씩 반복하면서 요소(i)가 숫자인지 아닌지를 판별(isdigit() 함수 사용)해준다. 이때, 가장 고려해야 할 점이 "연속된 수는 하나의 숫자로 간주한다"는 점이었다. 즉, 단순히 숫자라고 더하기를 더해주면 안 되고, 이후의 수, 그 이..
2023.06.04 -
[Programmers/Lv. 0] 코딩테스트 입문 Day 20 - 수학, 시뮬레이션, 문자열, 사칙연산 (Python)
1. 직사각형 넓이 구하기 (문제 설명, 제한사항, 입출력 예) 직사각형 네 꼭짓점의 좌표가 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 형태로 담겨 있는 배열이 주어질 때, 주어진 직사각형의 넓이를 구하라는 문제이다. 주어진 직사각형은 2차원 좌표 평면에 변이 축과 평행하게 주어진다. (내가 생각한 풀이 과정) 직사각형의 넓이를 구하는 방법이 "가로 x 세로"인 것은 초등학교 때 배우니까 너무 당연한 것이고, 나는 이 가로와 세로의 길이를 x값의 최대-최소, y값의 최대-최소 식을 이용해서 구하기로 했다. (코드) 더보기 💡 내 코드 def solution(dots): return (max(dots)[0] - min(dots)[0])*(max(dots)[1] - min(do..
2023.06.03 -
[Programmers/Lv. 0] 코딩테스트 입문 Day 19 - 문자열, 배열, 조건문 (Python)
1. 7의 개수 (문제 설명, 제한사항, 입출력 예) 정수 배열이 주어질 때, 배열 안에 7이 총 몇 개 있는지 구하라는 문제이다. (내가 생각한 풀이 과정) 파이썬 문자열에는 count()라는 찾고 싶은 문자의 개수를 구할 수 있는 내장 함수가 존재한다. 배열 속에 들어있는 요소들을 하나의 문자열로 변환한 후, count 함수를 이용해서 7의 개수를 구하면 된다. (코드) 더보기 💡 내 코드 def solution(array): return str(array).count('7') 2. 잘라서 배열로 저장하기 (문제 설명, 제한사항, 입출력 예) 주어진 문자열을 주어진 정수만큼 잘라서 저장한 배열을 반환하라는 문제이다. (내가 생각한 풀이 과정) 문자열(my_str) 속에 있는 한 문자(i)씩 반복을 하..
2023.06.03