본문 바로가기
728x90

목록171

[프로그래머스]정수 삼각형 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 간단히 요약하자면 다음과 같다. 정삼각형 형태의 피라미드에 숫자가 주어진다. 젤 위의 꼭지점에서 출발하여 바닥으로 이동한다고 할 때, 왼쪽 아래나 오른쪽 아래로만 움직일 수 있다. 이 때, 이동하면서 얻을 수 있는 숫자 합의 최댓값은 얼마인지 반환해야한다. 코드를 작성하기 위한 순서는 다음과 같다. 1. 이동할 수 있는 경우의 수가 두 가지 밖에 없으므로 더했을 때, 둘 중에.. 2023. 2. 1.
[알고리즘]1. 시간과 공간 작성한 알고리즘이 문제를 해결할 수는 있어도 만약 속도가 1년 이상이 걸린다면 해당 알고리즘은 좋은 것이라고 할 수 없다. 알고리즘이 적은 시간을 사용한다는 것은 더 빠르게 동작한다는 것이다. 웹에서 검색이 빠르게 이루어진다면 사용자의 답답함을 줄일 수 있다는 것이고, 게임 로딩 시간이 빨라진다면 금쪽같은 휴식 시간을 조금 더 효율적으로 즐길 수 있을 것이다. 시간 뿐만 아니라, 알고리즘은 공간과도 관련이 있는데 이는 메모리 사용량을 의미한다. 알고리즘이 빠르더라도 엄청 많은 메모리량을 사용한다면 작업을 수행할 수 없을 것이다. 띠라서 알고리즘을 작성할 때는 시간과 공간을 신경쓰는 것이 중요하다. 이를 보통 '시간복잡도', '공간복잡도'라고 한다. 알고리즘의 시간은 대부분 반복문이 지배한다. 자동차와 자.. 2023. 1. 27.
[알고리즘]0. 알고리즘 왜 배워야 하는가? 개발자라는 직업은 수학과 뗄래야 뗄 수 없는 직업이다. 수학에서의 가장 큰 목적은 바로 '문제 해결 능력'이다. 주어진 문제가 무엇인지 판단하고 그에 맞는 해답을 찾되, 간단한 방법을 사용하는 것이 좋다. 프로그래밍에서도 똑같은 맥락이다. 특정한 임의의 수를 담기 위해서 보통 변수를 사용한다. 자료형에 따라서 담을 수 있는 종류는 다르겠지만, 변수에는 모든 수를 담을 수가 있다. 즉, 무한하다는 것이다. 그러나 컴퓨터는 유한하다. 기술이 발전하여 장비가 향상되었다고 해도 담을 수 있는 한계가 존재한다. 프로그램이 사용할 수 있는 최대 메모리를 고려해야 한다. 그리고 프로그램의 수행 속도는 시간과도 관련이 있기 때문에 속도가 느리거나 시간이 길어지면 사용자 역시 그 시간을 기다려야 한다. 따라서 우리는 문.. 2023. 1. 27.
[프로그래머스]문자열 압축 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 간단히 요약하자면 다음과 같다. 알파벳으로만 이루어진 문자열 s가 주어진다. ababab는 반복되는 문자인 ab가 총 3번 반복되므로 3ab로 줄일 수 있다. 단, 반복되는 문자를 줄일 때는 반복되는 문자의 수가 같아야하며, 맨 앞을 줄이지 않으면 뒤는 줄일 수가 없다. 이 때, 문자열을 줄여서 만들 수 있는 길이의 최솟값을 반환해야 한다. 코드를 작성하기 위한 순서는 다음과.. 2023. 1. 25.
728x90