SOO LOG
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 2. 예상 대진표
    2025-01-13 01:29:35
    🟪 나의 구현 스케치두 수가 같은 라운드에 있을 때 올바르게 대결할 수 있도록 보장하기 위해 a,b에 각각 1을 더한 후 2씩 나눈다.1을 더하지 않는 경우 a = 6, b = 7인 경우 a = 3, b =3으로 처리되어 첫 번째 라운드에서 대결하는 것으로 여겨진다. 🟪 나의 구현 코드def solution(n,a,b): answer = 0 while a != b: answer += 1 a, b = (a + 1) // 2, (b + 1) // 2 return answer 🟪 다른 사람의 구현 코드a와 b가 같은 그룹에 속하는 첫 번째 라운드의 번호를 반환한다. 직접적으로 a와 b를 나누어 가며 비교하지 않고 그룹을 계산하는 수학적 방법을 사용하여 더 ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 2. 연속 부분 수열 합의 개수
    2025-01-11 21:19:05
    🟪 나의 구현 스케치연속된 부분 수열의 합만 구해야 하므로 combinations 함수를 사용하지 않고, 원형 수열이기 때문에 합을 구하는 수열은 elements*2로 정의한다.0~len(elements)-1 각 시작점에서 1~len(elemets)+1까지의 조합의 개수만큼 부분수열의 합을 구하도록 하였고 set 함수를 사용하여 중복된 값을 제외할 수 있도록 한다. 🟪 나의 구현 코드def solution(elements): len_ele = len(elements) new_ele = elements*2 answer = set() for idx in range(1, len_ele+1): for i in range(0, len_ele): answer..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 십자가 모양의 지속적 폭발
    2024-06-20 17:19:26
    https://www.codetree.ai/missions/2/problems/cross-shape-continuous-bomb?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치0행부터 n행까지 주어진 열의 값이 0이 아닌 첫 행을 찾아 bomb() 을 수행한다. bomb은 선택된 칸에 적혀있는 크기만큼 십자가 모양의 터지는 것을 의미하는데, 이는 배열 범위안에 있는 십자가 모양의 크기의 수들을 0으로 한다.이후 down 함수를 통해 각 열을 n행부터 1행까지 확인하며 빈행은 한칸 윗 행의 값을 아래로 내리고 윗 행을 0으로 두어 중력이 작용하는 것을 구현한다. 🔷  나의 구현 코드def in_range(x,y): return 0
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 단 한 번의 2048 시도
    2024-06-20 15:34:56
    https://www.codetree.ai/missions/2/problems/one-trial-of-2048-game?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치move(grid, d) 함수:입력받은 grid를 d(방향)에 따라 한 줄을 0을 제외한 숫자로 이루어진 line으로 만든다. 행 또는 열 단위로 plus(line, d) 함수를 호출하여 숫자를 합친다.이동 후의 결과를 새로운 2차원 리스트에 저장하여 반환한다.plus(line, d) 함수:입력받은 line이라는 리스트에서 같은 수가 인접해 있는 경우 해당 숫자를 합쳐서 2배로 만든다.이미 합쳐진 수가 한번 더 합쳐지지 않도록 해당 위치의 값을 0으로 변경한다.d가 'R'(오른쪽) 또는 'D'(아래..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 최단 Length 인코딩
    2024-06-20 15:17:11
    https://www.codetree.ai/missions/2/problems/shortest-run-length-encoding?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치shift() 함수를 통해 한칸씩 오른쪽으로 이동 시킨 후 encoding() 함수를 수행하여 최소길이를 업데이트 한다.encoding() 함수는 연속적으로 나오는 알파벳의 수를 세어 encoded 문자열에 알파벳과 개수를 추가하여 인코딩된 문자열의 길이를 return한다. 🔷  나의 구현 코드def encoding(a): encoded = '' count = 1 for i in range(1, len(a)): if a[i] == a[i-1]: ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 1차원 폭발 게임
    2024-06-19 23:53:16
    https://www.codetree.ai/missions/2/problems/The-1D-bomb-game?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치1) set()을 이용하여 M개 이상 연속한 숫자를 갖는 폭탄들이 존재하지 않을때까지 계속 반복되도록 한다.2) 두번째 for문을 통해 보드의 모든 폭탄을 확인하여 현재 폭탄이 0이면 다음 폭탄으로 이동한다.3) 세번째 for문을 통해 연속된 같은 값의 폭탄 수를 센다.4) 폭탄 수가 m이상이면 0으로 변경하여 폭탄을 제거한다.5) 제거되지 않은 폭탄만 폭탄 리스트로 업데이트한다.6) 남은 폭탄의 개수와 값을 출력한다. 🔷  나의 구현 코드n, m = map(int, input().split())bombs ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 기울어진 직사각형의 회전
    2024-06-19 23:45:31
    https://www.codetree.ai/missions/2/problems/rotate-slanted-rectangle?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치1) grid의 값을 복사하여 똑같은 배열의 값을 갖는 temp를 만든다.2) 회전 방향에 따라 각 방향의 값만큼 grid의 값을 한 칸씩 이동하여 temp에 업데이트 한다.3) temp 값을 출력한다. 🔷  나의 구현 코드def rotation(): global temp x, y = r-1, c-1 if d == 1: dxs, dys = [-1, -1, 1, 1], [-1, 1, 1, -1] move_nums = [m4, m3, m2, m1] e..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 2차원 바람
    2024-06-13 12:59:46
    https://www.codetree.ai/missions/2/problems/The-2D-wind-blows?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치circle 함수를 통해 바람의 영향을 받는 직사각형의 경계에 있는 숫자들을 시계방향으로 회전한다. calc 함수를 통해 직사각형 영역의 수를 업데이트 한다. 해당 위치에서 상하좌우를 살펴 n,m의 범위를 벗어나지 않는 수를 curr_sum에 더하고 cnt를 1 증가한다. 최종적으로 curr_sum//cnt 값으로 업데이트 된다.1) circle 함수는 직사각형의 경계에 있는 숫자들을 시계방향으로 회전한다.- 직사각형의 왼쪽 상단의 값을 저장한다.- 왼쪽경계의 값을 r1부터 r2-1까지 아래 값을 위로 한칸..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] n개의 점 중 m개 고르기
    2024-06-10 20:03:41
    https://www.codetree.ai/missions/2/problems/choose-m-out-of-n-points?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치backtracking으로 n개의 점들 중 m개를 선택한다. 선택된 m개의 점들 중 거리가 가장 먼 점들의 길이를 계산한다. 모든 조합의 가장 먼 점들의 길이 중 최소를 구한다.1) choose(index,cnt) 를 통해 n개 중에 m개 선택하는 모든 조합을 만든다.2) m개가 선택되면 cal_dist() 함수를 통해 두 점 사이의 거리의 최대를 구한다.3) ans = min(ans,cal_dist()) 는 모든 조합의  cal_dist() 값 중 최솟값으로 업데이트한다. 🔷  나의 구현 코..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 2n개 중에 n개의 숫자를 적절하게 고르기
    2024-06-10 15:10:34
    https://www.codetree.ai/missions/2/problems/choose-n-out-of-2n-properly?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치backtracking으로 만든 조합의 개수가 n개 일 때 조합에 포함된 숫자의 합과 포함되지 않은 합의 최소를 구한다.1) find_min(index+1, cnt)은 조합에 해당 숫자를 선택하지 않는 경우이고, find_min(index+1,cnt+1)은 해당 숫자를 선택하는 경우이다.2) cnt는 현재 조합의 개수이므로 cnt가 n과 같아지면 ans를 업데이트한다. 이때 total - sum(curr_num)은 조합에 포함되지 않는 숫자들의 합이므로, 한번더 조합 숫자들의 합을 뺀 후 ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 최소 점프 횟수
    2024-06-09 23:58:56
    https://www.codetree.ai/missions/2/problems/min-num-of-jumps?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치크기 1부터 가능한 거리까지 점프하며 n번째 인덱스에 도달할 때의 최소 점프 횟수를 구한다.1) 1~number[cnt] 만큼 1씩 n번째에 도달할 때까지 jump한다.2) n번째 인덱스에 도달했을때 ans를 최소 jump 숫자로 업데이트한다. 🔷  나의 구현 코드n = int(input())number = list(map(int,input().split()))ans = 11def jump(cnt): global ans,curr_ans if cnt >= n-1: ans = min(an..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 가능한 수열 중 최솟값 구하기
    2024-06-08 17:39:34
    https://www.codetree.ai/missions/2/problems/find-min-of-possible-series?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치4,5,6으로 이루어진 길이 n의 조합 중 불가능한 수열조합이 없는 최소의 수를 구한다.1) find_min함수를 통해 4,5,6을 순서대로 append하며 길이가 n이 되면 return하도록 하여 4,5,6으로만 이루어진 길이 n의 모든 조합을 찾는다.2) possible 함수를 통해 해당 순열안에 불가능한 순열이 존재하는지 파악한다. 이는 1부터 len(num)//2길이의 숫자가 연속하여 반복되는 순열이 있는지 확인한다.3) 순서대로 조합을 생성하므로 possible한 첫 조합을 결과로..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 방향에 맞춰 최대로 움직이기
    2024-06-08 17:15:17
    https://www.codetree.ai/missions/2/problems/max-movements-with-direction?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치주어진 시작 행,열에서 시작해 현재 위치에 적혀있는 방향에 있는 숫자들 중 현재 숫자보다 더 큰 숫자가 적혀있는 곳으로 backtracking으로 이동하며 방향 전환의 최대숫자를 구한다.1) find_max 함수를 통해 현재 방향으로 이동하면서 현재 숫자보다 큰 수를 만나면 curr_num에 큰 수를 담고 해당 위치의 방향으로 변경하여 큰 수를 재탐색한다.2) 배열의 범위 안에 있고 해당 방향에 있는 숫자들이 현재 수보다 큰 경우에만 backtracking으로 재탐색을 수행한다. 3) 방..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/✳️코드트리 ]
    [코드트리] 알파벳과 사칙연산
    2024-06-06 23:53:47
    https://www.codetree.ai/missions/2/problems/calculations-with-alphabet?&utm_source=clipboard&utm_medium=text 🔷 나의 구현 스케치식에 사용된 알파벳에 1~4를 넣으며 가장 큰 계산값이 나오도록 해야하기 때문에 backtracking 알고리즘을 이용하면 될 것이라 생각한다. 1) for문을 돌며 식에 사용되는 알파벳을 used_alpha에 추가한다.2) get_max(idx,cnt) 함수를 통해 backtracking을 수행하며 used_alpha에 있는 각 알파벳에 1~4사이의 값을 넣어 모든 조합을 만든다.3) 식의 모든 알파벳에 숫자가 정해졌을 때마다 calculate()함수를 통해 식을 계산하여 최댓값을 업데이트..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 신규 아이디 추천
    2022-09-30 12:33:39
    🟪 나의 구현 스케치 각 단계에 맞게 코드를 구현했다. 하지만 string out of range 오류가 발생했고 각 단계를 확인한 결과 4단계에서 빈 배열인 경우 범위를 벗어난다. 따라서 len(new_id) > 0 조건을 추가한다. 🟪 나의 구현 코드 def solution(new_id): answer = '' #1단계 new_id = new_id.lower() #2단계 for str in new_id: if str.isalpha() or str.isdigit(): continue elif str in "-_.": continue else: new_id = new_id.replace(str, "") #3단계 while '..' in new_id: new_id = new_id.replace("..", ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 완주하지 못한 선수
    2022-09-30 11:34:58
    🟪 나의 구현 스케치 completion의 이름들이 participant에 있는지 확인하고 participant에서 제거하여 남은 participant의 이름을 return 하는 방법으로 코드를 작성했는데 효율성 테스트에서 실패했다. 그 이유는 파이썬에서 in과 remove의 시간 복잡도가 O(n)이므로 효율성면에서 많이 떨어지기 때문이다. 따라서 participant와 completion을 정렬하여 비교한 후 다른 경우 해당 이름을 return 하는 방식으로 코드를 작성했다. 이 때 for문을 모두 거친 후에도 return 되지 않는다면 participant의 정렬된 리스트의 마지막 이름의 선수가 완주하지 못한 것이므로 participant의 마지막 인덱스 선수 이름을 return 한다. 🟪 나의 구현..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 최소직사각형
    2022-09-28 12:06:31
    🟪 나의 구현 스케치 명함의 가로 길이와 세로 길이를 비교하여 큰 수를 가로 길이로 둔 후 가장 긴 가로 길이와 가장 긴 세로 길이를 곱해 return 한다. 🟪 나의 구현 코드 def solution(sizes): for index in range(len(sizes)): if sizes[index][0] < sizes[index][1]: sizes[index][0], sizes[index][1] = sizes[index][1], sizes[index][0] w = [sizes[index][0]for index in range(len(sizes))] h = [sizes[index][1]for index in range(len(sizes))] answer = max(w)*max(h) return answe..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. [1차] 비밀지도
    2022-09-28 11:36:31
    🟪 나의 구현 스케치 bin(arr1[index] | arr2[index]) 를 이용해 두 수의 2진수 OR 연산을 진행하고 [2:]를 이용하여 0b를 제외한 0과 1로만 이루어진 문자열을 배열에 넣는다. replace를 이용하여 1은 #으로 0은 공백으로 대체하여 문제의 출려과 같은 모습이 되게 한다. 하지만 001111은 1111로 배열에 들어있기 때문에 answer[index] = " "*(n-len(answer[index])) + answer[index]로 1111앞에 00을 붙여준다. 🟪 나의 구현 코드 def solution(n, arr1, arr2): answer = [bin(arr1[index]|arr2[index])[2:] for index in range(n)] for index in ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 같은 숫자는 싫어
    2022-09-18 22:30:37
    🟪 나의 구현 스케치 인덱스 0부터 len(arr)-1 까지 다음 인덱스와 값이 같은지 확인하여 다른 경우 answer인덱스에 넣는다. 위의 경우 [1,1,3,3,0,1,1] 그리고 [4,4,4,3,2] 모두 마지막 값이 answer에 추가되지 않으므로 마지막 값을 answer에 추가하여 return 한다. 🟪 나의 구현 코드 def solution(arr): answer = [] for i in range(len(arr)-1): if arr[i] != arr[i+1]: answer.append(arr[i]) answer.append(arr[len(arr)-1]) return answer 🟪 다른 사람의 구현 코드 a[-1:]을 통해 연속적으로 나타난 수를 제외한 수들을 배열에 넣을 수 있구나! def ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 예산
    2022-09-16 11:49:02
    🟪 나의 구현 스케치 d를 정렬해서 작은 금액부터 더해 최대한 많은 부서에 물품을 구매해준다. 신청한 금액을 더해 sum이 budget보다 작거나 같으면 지원 가능한 부서 개수를 증가시키고 sum이 budget 크면 지원 가능한 부서 개수를 return 하게 한다. 🟪 나의 구현 코드 def solution(d, budget): sum = 0 answer = 0 d.sort() for i in range(len(d)): sum += d[i] if sum
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 최대공약수와 최소공배수
    2022-09-15 23:08:59
    🟪 나의 구현 스케치 n의 약수 리스트와 m의 약수 리스트를 만든다. n의 약수의 개수가 적으면 n_list의 값이 m_list에 있는지 확인하여 존재한다면 최대공약수 gcd를 해당 값으로 업데이트 한다. m의 약수의 개수가 적으면 그 반대로 진행한다. 최소 공배수는 최대 공약수*(n//최대공약수)*(m//최대공약수)로 구한다. 🟪 나의 구현 코드 def solution(n, m): n_divisor, m_divisor = list(), list() gcd, lcm = 0, 0 #약수 구하기 for i in range(1, n+1): if n%i == 0: n_divisor.append(i) for i in range(1, m+1): if m%i == 0: m_divisor.append(i) #최대공약수..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 정수 내림차순으로 배치하기
    2022-09-15 23:05:24
    🟪 나의 구현 스케치 정수를 문자열로 변환후 리스트로 만든다. 그 후 내림차순으로 정렬한다. 마지막으로 리스트를 문자열로 만들고 다시 정수로 만들어 반환한다. 🟪 나의 구현 코드 def solution(n): n = list(str(n)) n.sort(reverse=True) answer = "".join(n) return int(answer) 🟪 다른 사람의 구현 코드 같은 코드를 합쳐서 작성하면 다음과 같이 숏코딩으로 만들 수 있다!! def solution(n): return int("".join(sorted(list(str(n)), reverse=True))); https://school.programmers.co.kr/learn/courses/30/lessons/12933 프로그래머스 코드 중심..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 3진법 뒤집기
    2022-09-14 11:37:19
    🟪 나의 구현 스케치 해당 정수를 3으로 나눈 나머지를 나눌수 있을 때까지 나눠 리스트에 넣고 마지막으로 마지막 몫을 넣어 앞뒤 반전(3진법)을 구한다. 다음으로 각 자리의 숫자와 자리값을 곱하고, 이것들을 더해 결과값을 return 한다. 🟪 나의 구현 코드 def solution(n): result = [] while n: if n >= 3: result.append(n%3) n = n//3 else: result.append(n) break length = len(result)-1 answer = 0 for i in range(len(result)): answer += result[i]*(3**length) length -= 1 return answer 🟪 다른 사람의 구현 코드 int를 이용하여 ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 약수의 합
    2022-09-14 11:33:32
    🟪 나의 구현 스케치 1부터 n까지의 수로 n을 나누었을 때 나머지가 0인 수를 찾아 모두 더한다. 🟪 나의 구현 코드 def solution(n): answer = 0 for number in range(1,n+1): if n%number == 0: answer += number return answer 🟪 다른 사람의 구현 코드 sum 함수를 이용할 수도 있다. def sumDivisor(num): # num / 2 의 수들만 검사하면 성능 약 2배 향상잼 return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0]) https://school.programmers.co.kr/learn/courses/30/lessons/12928 프로..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 두 정수 사이의 합
    2022-09-14 11:27:21
    🟪 나의 구현 스케치 a와 b의 크기 비교를 통해 두 수가 같지 않으면 반복문을 사용해 a와 b 사이의 모든 정수를 합한다. 🟪 나의 구현 코드 def solution(a, b): answer = 0 if a b: for number in range(b, a+1): answer += number else: answer = a return answer 🟪 다른 사람의 구현 코드 a가 b보다 크면 a와 b의 값을 서로 바꾼다. sum에 range를 사용하면 a와 b 사이의 합계를 알 수 있다. def adder(a, b): if a > b: a, b = b, a return sum(range(a,b+1..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 자릿수 더하기
    2022-09-14 11:20:52
    🟪 나의 구현 스케치 n을 문자열로 만들고 각 자리의 수를 다시 정수로 만들어 더해 합계를 구한다. 🟪 나의 구현 코드 def solution(n): answer = 0 n = str(n) for i in range(len(n)): answer += int(n[i]) return answer 🟪 다른 사람의 구현 코드 재귀용법을 이용하여 각 자릿수를 더하는 방법이다. 짧고 쉽지만 아쉽게도 시간 복잡도 측면에서 비효율적이다. def sum_digit(number): if number < 10: return number; return (number % 10) + sum_digit(number // 10) https://school.programmers.co.kr/learn/courses/30/lessons/..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 나머지가 1이 되는 수 찾기
    2022-09-14 11:18:16
    🟪 나의 구현 스케치 반복문을 통해 나누어서 나머지가 1이 되도록 만드는 수를 return 한다. 반복문에서 n을 n으로 나누면 나머지가 0이므로 반복문 범위에서 n을 포함하지 않아도 된다. 🟪 나의 구현 코드 def solution(n): for num in range(1,n): if n%num==1: return num 🟪 다른 사람의 구현 코드 나머지가 1이 되도록 하는 가장 작은 자연수를 출력하기 위해 [0]을 이용한 방법이다. def solution(n): return [x for x in range(1,n+1) if n%x==1][0] https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 이상한 문자 만들기
    2022-09-14 10:47:57
    🟪 나의 구현 스케치 처음에는 split으로 단어를 나누어 짝수번째 index의 문자열은 대문자로 홀수번째 index의 문자열은 소문자로 변경했다. 하지만 공백 개수를 고려하지 않아 테스트 케이스는 통과했으나 제출 시 실패했다. 다시 처음부터 구현을 했다. count로 각 단어의 index를 표시하는데 사용했고, isspace로 공백문자이면 공백을 더하고 count를 0으로 초기화시켜 다음 단어의 index를 처음 시작하도록 했다. 🟪 나의 구현 코드 처음 코드 - 공백 개수 고려 x def solution(s): answer = "" slist = s.split() for word in slist: for i in range(len(word)): if i%2 == 0: answer += word[i]...
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 문자열 다루기 기본
    2022-09-14 10:22:40
    🟪 나의 구현 스케치 각 자리수가 알파벳인지 확인하여 알파벳이면 False를 return 하고. 모든 자릿수를 확인했을 때 answer가 True이면 숫자로만 이루어진 문자열이므로 True를 return 한다. 처음에 문자열의 길이를 고려하지 않아 테스트 케이스 5,6,28,29 을 실패했다. 따라서 문자열의 길이가 4또는 6인지 확인하여 그렇지 않은 경우에도 False를 return 하도록 해야한다. 🟪 나의 구현 코드 def solution(s): answer = True if len(s)==4 or len(s)==6: for i in range(len(s)): if s[i].isalpha(): answer = False else: answer = False return answer 🟪 다른 사람의 ..
  • 게시글 대표 이미지 썸네일 주소
    [ 코딩테스트/🕊️프로그래머스 ]
    LEVEL 1. 가운데 글자 가져오기
    2022-09-14 10:18:06
    🟪 나의 구현 스케치 단어의 길이가 짝수이면 몫을 이용해 가운데 두 글자를 반환하고, 단어의 길이가 홀수이면 가운데 글자를 반환하게 한다. 🟪 나의 구현 코드 def solution(s): if len(s)%2==0: index = len(s)//2 answer = s[index-1]+s[index] else: index = len(s)//2 answer = s[index] return answer 🟪 다른 사람의 구현 코드 예를 들어 str이 check이면 str[4//2 : 5//2+1] = str[2 : 3] -> e 예를 들어 str이 list이면 str[3//2 : 4//2+1] = str[1 : 3] -> is 슬라이싱을 이용하면 더욱 쉽게 표현할 수 있구나! def string_middle(..