공부/📝 프로그래머스(126)
-
[1차] 비밀지도 - Python
1. 풀이 코드 def solution(n, arr1, arr2): answer = [] for map1, map2 in zip(arr1, arr2): temp = f"{map1 | map2:016b}" print(temp[-n:]) answer.append(temp[-n:].replace("1", "#").replace("0", " ")) return answer # Test Cases print(solution(5, [9, 20, 28, 18, 11], [30, 1, 21, 17, 28])) print(solution(6, [46, 33, 33, 22, 31, 50], [27, 56, 19, 14, 14, 10])) 비트연산자 or을 통해 두 지도의 데이터를 합친 뒤 binary로 바꿔주었습니다. 2..
2023.10.17 -
문자열 내 마음대로 정렬하기 - Python
1. 풀이 코드 def solution(strings, n): answer = [] for item in strings: temp_str = item[n] + item[0:n] + item[n+1:] answer.append(temp_str) answer.sort() return [item[1:1+n] + item[0] + item[1+n:] for item in answer] # Test Cases print(solution(["sun", "bed", "car"], 1)) print(solution(["abce", "abcd", "cdx"], 2)) n번째 글자를 맨 앞으로 옮긴 뒤 정렬을 하고, 다시 복원하는 과정으로 문제를 풀었습니다. 2. 다른 사람 풀이 코드 def solution(strings..
2023.10.17 -
영어 끝말잇기 - Python
1. 풀이 코드 def solution(n, words): temp = words[0][0] player = 0 word_num = 1 word_list = [] for item in words: if player >= n: player = 1 word_num += 1 else: player += 1 if item[0] == temp: if item in word_list: return [player, word_num] else: word_list.append(item) temp = item[-1] else: return [player, word_num] return [0, 0] # Test Cases print(solution(3, ["tank", "kick", "know", "wheel", "land..
2023.10.16 -
숫자 문자열과 영단어 - Python
1. 풀이 코드 def solution(s): s = s.replace("zero", "0") s = s.replace("one", "1") s = s.replace("two", "2") s = s.replace("three", "3") s = s.replace("four", "4") s = s.replace("five", "5") s = s.replace("six", "6") s = s.replace("seven", "7") s = s.replace("eight", "8") s = s.replace("nine", "9") return int(s) # Test Cases print(solution("one4seveneight")) print(solution("23four5six7")) print(solu..
2023.10.16 -
짝지어 제거하기 - Python
1. 풀이 코드 def solution(s): stack = [' '] for right in s: left = stack.pop() if left == right: pass else: stack.append(left) stack.append(right) return int(len(stack) == 1) # Test Cases print(solution("baabaa")) print(solution("cdcd")) stack으로 풀었습니다. 더보기 1) 틀린 코드 def solution(s): temp = "" while temp != s: temp = s s = s.replace("aa", "") s = s.replace("bb", "") s = s.replace("cc", "") s = s.repla..
2023.10.15 -
시저 암호 - Python
1. 풀이 코드 def solution(s, n): small = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] large = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] answer = '' for item in s: if item in small: answer += small[(small.index(item) + n) % 26] ..
2023.10.15 -
최소직사각형 - Python
1. 풀이 코드 def solution(n): x, y = 0, 0 for a, b in n: x = max(x, max(a, b)) y = max(y, min(a, b)) return x*y # Test Cases print(solution([[60, 50], [30, 70], [60, 30], [80, 40]])) print(solution([[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]])) print(solution([[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]])) 위와 같이 풀었습니다. 2. 다른 사람 풀이 코드 solution = lambda sizes: max(sum(sizes, [])) * max(min(size) for ..
2023.10.15