본문 바로가기

Algorithm9

자료구조 1. 스택 - 스택: 한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조 - LIFO: Last In Fisrt Out 메소드 - push: 입력 - pop: 출력 문제 - 9093: 단어 뒤집기 - 9012: 괄호 - 1874: 스택 수열 - 1406: 에디터 (링크드리스트도 이용 가능) 2. 큐 - 큐: 한쪽 끝에서만 자료를 넣고 다른 한쪽 끝에서만 뺄 수 있는 자료구조 - FIFO: First In Fisrt Out 메소드 - push: 입력 - pop: 출력 - front: 가장 앞에 있는 자료 - back: 가장 뒤에 있는 자료 - empty: 비어있는지 - size: 저장되어 있는 자료의 개수 - BFS 알고리즘에서 주로 사용함 3. 덱 - 양 끝에서만 자료를 넣고 양 끝에서 뺄 수 있는 자료구조.. 2022. 4. 26.
정렬 알고리즘 https://hsp1116.tistory.com/33 기본 정렬 알고리즘(Sorting Algoritm) 요약 정리 (선택, 삽입, 버블, 합병, 퀵) v1.1 정렬 알고리즘은 n개의 숫자가 입력으로 주어졌을 때, 이를 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘이다. 예를 들어 n개의 숫자가 저장되어있는 배열을, 오름차순의 조건으로 hsp1116.tistory.com 2022. 3. 19.
프로그래머스- 코테 고득점 kit - 해시: 위장 import java.util.HashMap; class Solution { public int solution(String[][] clothes) { int result = 1; HashMap map = new HashMap(); for(String[] item: clothes) { map.put(item[1], map.getOrDefault(item[1], 0) + 1) ; } for(String key: map.keySet()) { result *= map.get(key) + 1; } return result-1; } } 2022. 3. 7.
섹션 3. 탐색 & 시뮬레이션 1. 회문 문자열 검사 # 회문 문자열 # 1. for 문을 도는데, 리스트길이의 절반인덱스만 돌면서 비교하면됨 import sys #sys.stdin = open("in1.txt", "rt") n = int(input()) count = n // 2 for i in range(n): word = list(input()) size = len(word) count = size // 2 flag = True for wordIndex in range(count): if word[wordIndex].upper() != word[size-1-wordIndex].upper() : flag = False break print('#%d'%(i+1), end=' ') if flag == False: print('NO').. 2021. 4. 22.
섹션 2. 코드 구현능력 기르기 1. k번째 약수 #import sys #sys.stdin=open("input.txt","rt") #n=input() #a = int(n.split(" ")[0]) #b = int(n.split(" ")[1]) #count = 0 #result = -1 #for i in range(1,a+1): # if a%i==0: # count+=1 # if count==b: # result = i # break #print(result) # 풀이 import sys #sys.stdin = open("input.txt", "rt") n, k = map(int, input().split()) cnt = 0 for i in range(1, n+1): if n % i == 0: cnt+=1 if cnt == k: pri.. 2021. 4. 15.
기초 100제 1013 a, b = input().split() print(a) 2020. 10. 24.