Algorithm/1일 1코테
-
[leetcode] 344. Reverse StringAlgorithm/1일 1코테 2021. 4. 14. 19:56
문제 leetcode.com/problems/reverse-string/ Reverse String - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com return할 필요없이 s 안의 값만 변경하는 문제. 단, 새로운 list 생성 등을 하면 안되고 s 안에서만 변경해야 한다. 모범답안 class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s ..
-
[leetcode] 125.Valid PalindromeAlgorithm/1일 1코테 2021. 4. 14. 19:35
문제 입력 문자열이 팰린드롬인지 확인하는 문제 leetcode.com/problems/valid-palindrome/ # 내 답 class Solution: def isPalindrome(self, s: str) -> bool: p = '' # 전처리한 str 담아줄 변수 for i in s: if i.isalpha() or i.isdigit(): # 알파벳이거나 숫자일때만 i = i.lower() # 소문자로 바꿔준 뒤 더해줌 p += i p2 = p[::-1] # 팰린드롬인지 비교하기 위해 뒤집음 for i in range(len(p)): if p[i] != p2[i]: # 0번째부터 하나씩 출력해서 다르면 False return False return True isalpha() + isdigit()..
-
[🐉 백준 13단계] 백트래킹Algorithm/1일 1코테 2021. 1. 4. 15:45
백트래킹: 조건에 따른 모든 조합의 수를 찾는 것. 15649 import itertools a, b = input().split() l = [i for i in range(1, int(a)+1)] s = list(itertools.permutations(l, int(b))) for s in s: a = '' for i in s: a += str(i) a += ' ' print(a) 15650 import itertools a, b = input().split() l = [i for i in range(1, int(a)+1)] s = list(itertools.combinations(l, int(b))) for s in s: a = '' for i in s: a += str(i) a += ' ' prin..
-
[🦩 프로그래머스] 하샤드수, 124 숫자의 나라Algorithm/1일 1코테 2020. 12. 28. 11:26
하샤드 수 def solution(x): a = list(map(int, str(x))) # x를 자릿수별로 짤라서 list if x%sum(a) == 0: # x를 a의 합으로 나눈 나머지가 0이면 True return True return False 124 숫자의 나라 def solution(n): answer = '' while n > 0: n -= 1 answer = '124'[n%3] + answer n //= 3 return answer
-
[🦩 프로그래머스] 최솟값 만들기 / 3진법 뒤집기Algorithm/1일 1코테 2020. 12. 21. 14:57
최솟값 만들기 def solution(A,B): A.sort() B.sort(reverse=True) s = 0 for a, b in zip(A,B): s += a*b return s 3진법 뒤집기 def solution(n): answer = [] while True: answer.append(n%3) n = n//3 if n < 1: break i = 0 s = 0 while answer: a = answer.pop(-1) s += a * 3**i i += 1 return s
-
[🐉 백준 12단계] 정렬Algorithm/1일 1코테 2020. 12. 21. 14:43
백준 12단계 [정렬] 2750 n = int(input()) a = [] for _ in range(n): a.append(int(input())) a.sort() for i in range(len(a)): print(a[i]) 2751 import sys n = int(input()) l = [] for _ in range(n): l.append(int(sys.stdin.readline())) l.sort() for i in l: print(i) 10989 import sys c = [0] * 10001 n = int(input()) for _ in range(n): a = int(sys.stdin.readline()) c[a] += 1 for i in range(len(c)): if c[i] != ..
-
[💕 프로그래머스] 소수 만들기Algorithm/1일 1코테 2020. 12. 19. 19:47
프로그래머스 2단계 소수 만들기 문제 programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 답 import itertools def solution(nums): # 3가지 수를 이용하라고 했으므로 per~함수를 통해 3개의 조합들을 저장한다. nums = map(str, nums) n = list(itertools.permutations(nums, 3)) # dictionary에는 총 더한값과 그 수를 구성하..
-
[💕 프로그래머스] 소수 찾기Algorithm/1일 1코테 2020. 12. 19. 18:22
프로그래머스 2단계 🔫소수 찾기🔫 문제 programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 내 답 - 1차시도 permutation 함수를 이용해 모든 경우의 수 저장, 1단위 숫자는 안나와서 더해줌. l에서 하나씩 뽑아서 나머지가 0이면 count를 더해줌. count가 1보다 크면 소수가 아니라는 뜻이므로 1인 경우에만 answer에 더해줌 import itertools def solution(numbers)..