본문 바로가기

LEVEL 215

[프로그래머스][Level 2][Python] 영어 끝말잇기 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 주의해야 할 점 탈락자가 생기는 이유는 앞 단어의 끝 글자와 뒷 단어의 첫 글자가 맞지 않는 경우도 있지만, 이전에 이미 사용했던 단어를 .. 2021. 8. 3.
[프로그래머스][Level 2][Python] 최솟값 만들기 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 주의해야 할 점 매개변수로 주어지는 두 리스트 A, B의 길이가 서로 다르다면 좀 더 어려울 수도 있는 문제라고 생각됩니다. 이번 문제에서는 매개변수의 두 리스트 A, B의 길이가 같습니다. 굳이 주의할 점은 아니지만 두 리스트의 길이를 저장하려면 그냥 A, B 중 한 리스트의 길이만 재서 저장하면 됩니다. 생각한 풀이 과정 최종적으로 누적된 최솟값을 저장할 min_result 변수를 만들어줍.. 2021. 8. 1.
[프로그래머스][Level 2][Python] 숫자의 표현 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 주의해야 할 점 정확성뿐만 아니라 효율성도 테스트하는 문제입니다. 정확성만 테스트하는 문제라고 해도 어느정도 효율성에 맞는 코드를 짜야되지만, 이런 문제와 같이 효율성을 대놓고 체크하는 문제는 실행 시간이 빠른 코드를 짜는데도 집중해야 합니다. 저처럼 코드를 짜게 된다면 n을 연속한 자연수들로 표현하는 방법들을 구할 때 시작하는 수를 무작정 1부터 n까지 고려하면 더 비효율적인 코드가 나올 것입.. 2021. 7. 31.
[프로그래머스][Level 2][Python] 위장 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 위장 programmers.co.kr 주의해야 할 점 스파이는 하루에 최소 한 개의 의상은 입는다는 것을 주의해야 합니다. 특히 저처럼 수학적으로 풀 때 주의해야 합니다. 생각한 풀이 과정 문제의 입출력 예제의 설명처럼 구현한 코드가 아닌, 수학적 접근으로 푼 방법입니다. 매개변수 clothes의 값에는 각 옷들이 종류마다 묶여서 저장되어 있지 않기 때문에, 옷의 종류를 key로, 옷의 이름을 value로 지정한 딕셔너리 변수로 구별해서 다시 만들어줍니다. 옷의 한 종류에는 여러 옷들이 있을 수 있기 때문에 딕셔너리의 value는 리스트 형태로 만들어줍니다. 옷의 종류마다 (각 옷의 종류에서 옷의 개수) + (이 옷의 종류를 입지 않는 .. 2021. 7. 30.
[프로그래머스][Level 2][Python] 괄호 회전하기 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 주의해야 할 점 문제에서는 올바른 괄호 문자열이 되게 하는 x의 개수라고 표현했는데 제가 생각하기엔 조금 헷갈리게 만들 수도 있다는 표현이라고 생각합니다. 그냥 한 번씩 회전하면서 올바른 괄호 문자열의 개수를 세면 됩니다. 올바른 괄호 문자열의 조건을 잘 읽어봐야 합니다. 대부분의 테스트 케이스들은 통과하는데 몇 개의 테스트를 통과하지 못한다면 아마 올바른 괄호 문자열의 조건을 제대로 이해하지 못하고 짠 코드일 것입니다. 저도 제대로 이해하지 못한 상태로 코드를 짜서 틀린 결과를 계속 봤었습니다. 생각한 풀이 과정 올바른 괄호 문자열의 개수를 저장할 변수를 하나 만들어줍니다. 문자열 s를 왼.. 2021. 7. 28.
[프로그래머스][Level 2][Python] 기능개발 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 주의해야 할 점 progresses에서 뒤에 있는 기능의 개발 일정이 앞에 있는 기능의 개발 일정보다 먼저 끝날 수 있다 하더라도, progresses에서 앞에 있는 기능이 먼저 배포돼야 뒤에 있는 기능을 배포할 수 있습니다. 생각한 풀이 과정 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 리스트 progresses와 각 작업의 개발 속도가 적힌 정수 리스트 speeds, 두 리스트에서 작업 순서를.. 2021. 7. 27.
[프로그래머스][Level 2][Python] 문자열 압축 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 주의해야 할 점 압축할 문자의 개수 단위는 1개부터 문자열 s의 길이의 절반까지만 고려하면 됩니다. 문자열 s의 길이의 절반보다 큰 단위로는 압축이 되지 않습니다. 압축한 문자열 단위 개수가 1일 때는 생략해야 합니다. 매개변수로 주어지는 문자열 s의 길이가 1일 때의 경우를 고려해야 합니다. 처음 짠 코드에서는 위의 조건을 따로 고려하지 않은 채로 제출해보니까 테스트 1개를 통과하지 못했습니다. 생각한 풀.. 2021. 7. 26.
[프로그래머스][Level 2][Python] 방문 길이 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 방문 길이 programmers.co.kr 생각한 풀이 과정 캐릭터가 처음 걸어본 길의 정보를 저장할 set 변수를 하나 만들어줍니다. set 변수로 만드는 이유는 처음 걸어본 길만 저장해야하기 때문에 중복을 없애기 위해서입니다. 매개변수로 주어진 명령어에서 한 명령어씩 반복해봅니다. 명령어에 의해 어떤 한 점에서 다른 한 점으로 캐릭터가 이동할 때, 출발하는 점의 정보를 (출발점 x좌표, 출발점 y좌표, 명령어) 형식의 튜플로 만들어줍니다. 처음 걸어본 길의 길이를 구해야하기 때문에 1번 과정에서의 출발점에서 다음 점으로 이동하는 정보의 반대 정보도 튜플 형식으로 생각합니다. 왜냐하면, 예를 들어, (0, 0)에서 L 명령어를 통해 (.. 2021. 7. 23.
[프로그래머스][Level 2][Python] 카펫 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 생각한 풀이 과정 매개변수 yellow값에서 가능한 직사각형, 정사각형 모양이 어떤 것이 있는지 생각해봅니다. 예를 들어, yellow가 2라면 1X2, 2X1 사각형 모양이 가능, yellow가 4라면 1X4, 2X2, 4X1 사각형 모양이 가능하며, yellow가 6이라면 1X6, 2X3, 3X2, 6X1 사각형 모양이 가능합니다. 무조건 카펫의 세로 길이가 가로 길이보다 작거나 같으므로(제한사항) 카펫에서.. 2021. 7. 22.
[프로그래머스][Level 2][Python] [1차] 캐시 밑의 링크는 프로그래머스에서의 문제 링크입니다. cacheSize: # cache의 맨 앞에 있는 도시를 삭제해줍니다. del cache[0] # 현재 도시가 cache에 들어있다면 elif city in cache: # cache에 있는 현재 도시의 인덱스를 저장하는 변수를 선언합니다. city_idx = cache.index(city) # cache에 있는 현재 도시를 없애줍니다. cache.pop(city_idx) # 현재 도시를 cache의 끝에 다시 넣어줍니다. cache.append(city) # cache hit이므로 총 실행시간에 1을 더해줍니다. time += 1 # 총 실행시간을 반환합니다. return time 이 문제를 처음 봤을 때 '캐시 교체 알고리즘은 LRU(Least Rece.. 2021. 7. 20.