본문 바로가기

분류 전체보기

(27)
[Python]연결리스트 -> 리스트, 리스트-> 연결리스트 1. 연결리스트의 기본 구조 class node(): def __init__(self,data): self.data= data self.next= None 2. 리스트를 연결리스트로 -> def listtoliked(arr): if len(arr)>0: head = node() node.data = arr[0] current = head for i in range(1,len(arr)-1): new_node = node() node.data= arr[i] current.next = new_node current = current.next 3.연결리스트를 리스트로 def linkedtolist(linked): result =[ ]#연결 리스트를 넣어 줄 리스트 if linked is None: return ..
[leetcode]21 두 연결리스트의 병합 https://leetcode.com/problems/merge-two-sorted-lists/submissions/ LeetCode - The World's Leading Online Programming Learning Platform 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 문제 : 정렬되어 있는 두 연결 리스트를 합쳐라 입력 : 1->2->4, 1->3->4 출력 : 1 ->1->2->3->4->4 문제 해결 방법 1. 두 연결 리스트를 리스트로 변환 후 다시 연결..
[leetcode]234 팰린드롬 연결리스 https://leetcode.com/problems/palindrome-linked-list/ Palindrome Linked List - LeetCode Can you solve this real interview question? Palindrome Linked List - Given the head of a singly linked list, return true if it is a palindrome or false otherwise. Example 1: [https://assets.leetcode.com/uploads/2021/03/03/pal1linked-list.jpg] Input: hea leetcode.com 문제 : 연결리스트가 팰린드롬 구조인지 판별하라. 입력 : 1 ->2 ->2-..
[python]딕셔너리에서 value값이 가장 큰 key 알아내는 문제 : 문제: 문자열에서 가장 많이 등장하는 단어를 찾아 반환하는 함수를 작성하세요. 예시 입력: "apple banana cherry apple banana" 예시 출력: "apple" def solution(s): words = list(s.split()) word_count = {} for word in words: if word in word_count: #키가 딕셔너리에 존재한다면 word_count[word] +=1 else: word_count[word] =1 #딕셔너리의 키값으로 정렬 result = max(word_count,key = word_count.get) return result print(solution("apple banana cherry apple banana")) 파이썬..
프로그래머스 숫자 문자열과 영단어 파이썬 딕셔너리와 for문 문제 : 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자영단어 0 zero 1 one 2 two 3 three 4 four 5 five 6 six 7 se..
[leetcode]238 자신을 제외한 배열의 곱 문제 : 배열을 입력 받아 output[i]가 자신을 제외한 나머지 모든 요소의 곱셈 결과가 되도록 출력하라 입력 :[1,2,3,4] 출력 : [24,12,8,60] 문제를 푸는 과정 1. 리스트의 모든 곱을 구한다. 2. 나로 나누어준다. 3. 나로 나누는 과정에서 중요한 점 -> 0으로 나눌 수 없음 따라서 가장 중요한 것은 리스트에 0이 있느냐 없느냐 1. 리스트에 0이 있는 경우 리스트에 0만 존재하는 경우 리스트에 0과 다른 숫자가 함께 존재하는 경우 리스트에 0이 1개만 존재하는 경우 -> 나를 제외한 곱이기 때문에 0에서는 곱셈 결과가 나올 수 있다. 리스트에 0이 2개 이상 존재하는 경우 -> 0을 하나 제외하더라도 곱셈이기 때문에 다른 0이 있어서 결과에서 언제나 0이 나옴 2. 리스트에..
leetcode 42 , 빗물 트래킹 문제 : 높이를 입력 받아 비 온 후 얼마나 많은 물이 쌓일 수 있는지 계산하라 입력 : [0,1,0,2,1,0,1,3,2,1,2,1] 출력 : 6 코딩을 할 때마다 하는 생각이지만 문제를 풀 때는 항상 수학적 사고력이 가장 중요한 것 같다. 이 문제에 어떻게 접근을 할 것인가. 이후 나의 사고를 파이썬이라는 언어로 새롭게 만들어내는 것이다. 투포인터 알고리즘이란 리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘이다. 병합정렬의 영역의 기초임 한 칸을 기준으로 물을 담을 수 있는 영역은 왼쪽에서 가장 높은 칸, 그리고 오른쪽에서 가장 높은 칸, 그 중 더 작은칸에서 자신이 원래 높이를 뺀 만큼 물을 담을 수 있게 된다. 따라서 자신을 기준으로 왼쪽에서 가장 높은칸을, ..
#002 [3052] 백준 나머지 파이썬 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 예제 입력 1 2 3 4 5 6 7 8 9 10 예제 출력 10 내가 푼 코딩 a = [] b=[] for i in range(10): k =int(input()) a.append(k) for i in ..