본문 바로가기

전체 글

(357)
[프로그래머스] <n진수 게임> 파이썬 programmers.co.kr/learn/courses/30/lessons/17687 def solution(n, t, m, p): temp = [0] tube = '' turn = 1 if p == m : p = 0 for i in range(0,1000*m) : if len(tube) == t : break while i>0 : if i == 1 : temp.append(i) break else : if i % n > 9 : h = hex(i%n) temp.append(h[2:].upper()) else : temp.append(i%n) i = int(i/n) while temp : a = temp.pop() if turn == p : tube = tube + str(a) if len(tube) =..
[백준] <1157번 단어 공부> 파이썬 www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net from collections import Counter T = input() T = T.upper() T = list(T) counter = Counter(T).most_common() cnt = 0 for i in counter : if i[1] == counter[0][1] : cnt += 1 if cnt == 1 : print(counter[0][0]) else : print('?')
[백준] <1159번 농구 경기> 파이썬 www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 1. 항복할 때 추가 안함 2. 사전 순으로 정렬 안함 from collections import Counter T = int(input()) arr= [] while T : name = list(input()) arr.append(name[0]) T -= 1 answer = [] counter = Counter(arr) for i in counter : if counter[i] >= 5 : answer.append(..
[백준] <8958번 OX퀴즈> 파이썬 www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net T = int(input()) while T : arr = input() arr = list(arr) a= [] a.append(0) if arr[0] == 'X' else a.append(1) for i in range(1, len(arr)) : if arr[i] == 'O' : a.append(a[i-1] + 1) else : a.append(0) print(sum(a)) T -= 1 1..
5. 해쉬 테이블(Hash Table) 해쉬 테이블(Hash Table) 해쉬 구조 key에 value를 저장하는 데이터 구조 파이썬에서는 딕셔너리 타입을 사용하면 돼서 구현할 이유가 없음 용어 Hash : 임의 값을 고정 길이로 변환하는 것 해쉬 테이블 : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수 : key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해쉬 값 또는 해쉬 주소 : key를 해싱 함수로 연산해서, 해시 값을 알아내고, 이를 기반으로 해시 테이블에서 해당 key 에 대한 데이터 위치를 일관성 있게 찾을 수 있음 슬롯 : 한 개의 데이터를 저장 할 수 있는 공간 저장할 데이터에 대해 key를 추출할 수 있는 별도 함수도 존재할 수 있음 예 hash_table = list([i for i in..
4. 링크드 리스트(Linked List) 링크드 리스트(Linked List) 링크드리스트 구조 연결 리스트라고도 함 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 파이썬은 리스트 타입이 링크드리스트 기능을 모두 지원 노드 : 데이터 저장 단위 (데이터 값, 포인터)로 구성 포인터 : 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 갖고 있음 예 Node 구현 보통 파이썬에서 링크드 리스트 구현 시, 파이썬 클래스를 사용함 class Node : def __init__(self, data) : self.data = data self.next = None class LinkedList : def __init__(self, data, nex..
3. 배열(Array) 배열(Array) 배열 사용 같은 종류의 데이터를 효율적으로 관리 같은 종류의 데이터를 순차적으로 저장 장점 : 빠른 접근 가능(인덱스 번호로 접근) 단점 : 데이터 추가, 삭제가 어려움 파이썬 배열 파이썬은 리스트로 배열 구현 가능 data_list = [1,2,3,4,5] 연습 dataset = ['Braund, Mr. Owen Harris', 'Cumings, Mrs. John Bradley (Florence Briggs Thayer)', 'Heikkinen, Miss. Laina', 'Futrelle, Mrs. Jacques Heath (Lily May Peel)', 'Allen, Mr. William Henry', 'Moran, Mr. James', 'McCarthy, Mr. Timothy J'..
[프로그래머스] <가장 큰 정사각형 찾기> 파이썬 programmers.co.kr/learn/courses/30/lessons/12905# 코딩테스트 연습 - 가장 큰 정사각형 찾기 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9 programmers.co.kr def solution(board): m = 0 for i in range(1,len(board)) : for j in range(1,len(board[i])) : if board[i][j] : board[i][j] = min(board[i-1][j-1], board[i-1][j], board[i][j-1]) + 1 if m < board[i][j] : m = board[i][j] return m*m 정확성 테스트 테스트 1 〉 실패 (0.00ms, 10.2MB) ..