본문 바로가기

코딩 테스트/프로그래머스98

문자열 내 마음대로 정렬하기 첫번째 코드 먼저 정렬하는 코드이므로 sorted 함수를 사용하여 key에서 조정하면 될 듯 했다 근데 만약에 동일한 경우를 사전 순서대로 처리하는 방법이 문제였다! gpt의 참고를 받았지만 key를 설정할 때 만약에 x[n]이 동일한 경우 다음 정렬 순서를 정할 수 있다! def solution(strings, n): strings_sorted = sorted(strings, key = lambda x : (x[n], x)) return strings_sorted 통과! 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12915.%E2%80%85%EB%AC%B8.. 2024. 4. 7.
나누어 떨어지는 숫자 배열 첫번째 코드 각각의 arr안의 숫자를 가져와서 divisor로 나누어본 후 나머지가 0이면 answer 리스트에 추가하는 아이디어 그리고 이후에 answer 리스트 자체를 sort 함수를 통해 정렬! def solution(arr, divisor): answer = [] for i in arr: if (i % divisor) == 0: answer.append(i) if answer: answer.sort() return answer else: answer.append(-1) return answer 통과! answer.sort() 자체의 결과값은 None이다!!! 이것을 return에 넣으면 곤란행... 링크 https://github.com/ornni/programmers/tree/main/%ED%9.. 2024. 4. 6.
이상한 문자 만들기 첫번째 코드 문제 이해에 문제가 있었다 나는 문자 전체열에 대해서 진행해버렸.... def solution(s): answer = '' word = s.split() for i in range(len(word)): for j, char in enumerate(word[i]): if j % 2 == 0: answer += char.upper() else: answer += char.lower() answer += ' ' return answer.strip() 아이 그럼 결과는 처참했다! 두번째 코드 그래서 이제 단어별로 나누어서 진행하기 위해서 문자열을 나누고 단어별로 인덱스 기준 짝수면 대문자로, 홀수면 소문자로 바꾸는 코드를 작성했다 def solution(s): answer = '' word = s... 2024. 4. 5.
하샤드 수 첫번째 코드 정수를 하나하나 쪼개서 더해야 하므로 가장 먼저 생각난 방식은 문자열의 알파벳을 하나하나 가져오는 방법이다 그래서 정수를 문자열로 변환 후 하나하나 불러와서 더한 후 원래 값에 나눠지는지 여부를 확인했다 def solution(x): str_x = str(x) sum_num = 0 for i in str_x: num = int(i) sum_num += num if x % sum_num == 0: answer = True else: answer = False return answer 굳굳 통과! 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12947.. 2024. 4. 5.
행렬의 덧셈 첫번째 코드 arr1리스트 안의 temp1들로 구성된 리스트들이 있는 구조라고 생각한다. 정답도 temp들의 리스트를 채워 answer 리스트에 추가한다는 생각으로 접근한다. def solution(arr1, arr2): answer = [] for i in range(len(arr1)): temp = [] for j in range(len(arr1[i])): temp.append(arr1[i][j] + arr2[i][j]) answer.append(temp) return answer 통과! 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12950.%E2%80%.. 2024. 4. 4.
음양 더하기 첫번째 코드 조건을 맞는 경우, 맞지 않는 경우 수자를 어떻게 새로운 리스트에 추가하지?라는 아이디어로 접근했다! 만약에 signs가 true면 그대로 새로운 리스트에 들어가고, signs가 false면 (-1)을 곱해서 새로운 리스트에 추가한다. 이후에 모든 값을 더한다! def solution(absolutes, signs): new_num = [] for i in range(len(absolutes)): if signs[i] == True: new_num.append(absolutes[i]) else: new_num.append((-1) * absolutes[i]) answer = sum(new_num) return answer 통과! 그래도 나름 바로 아이디어가 떠올라서 풀어버려서 나름 실력이 느.. 2024. 4. 3.
728x90