개발 이야기/알고리즘 및 코테 준비
-
python 우선순위 que vs 힙 자료구조개발 이야기/알고리즘 및 코테 준비 2023. 1. 27. 08:59
https://github.com/zinhyeok/algorithm_study/tree/main/priority_que GitHub - zinhyeok/algorithm_study: 알고리즘 스터디 기록용 알고리즘 스터디 기록용 . Contribute to zinhyeok/algorithm_study development by creating an account on GitHub. github.com 문제 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0..
-
Python Counter와 Counter 사용 문제(백준 2108, 최빈값 찾기)개발 이야기/알고리즘 및 코테 준비 2023. 1. 24. 10:31
문제 2108 최빈값 찾기 www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 해당 문제 중 최빈값(mode)를 구하는 문제는 python에서는 collection의 Counter를 사용하는 것이 편하다고 한다. (sort이후에 lst[i]==lst[i+1]로 풀라고하다가 계속 틀려서 counter를 이용했다..ㅎ) 대다수의 python으로 푼 최빈값 구하기 알로리즘에서 counter를 이용했기 때문에 간단히 이에 대해 정리하였다. 풀이는 바로 아래에 적어놓았다 풀이 mpor..
-
Python List 자료형 변경과 Sort개발 이야기/알고리즘 및 코테 준비 2023. 1. 20. 14:37
Original list의 자료형을 변경 original_lst = ["1", "2", "3"] lst = list(map(int, original_lst)) map을 사용해서 자료형을 변경하면 된다. 이때 map은 map object를 반환하기에 list로 다시 감싸주어야한다. map의 int에 해당하는 부분은 다른 함수로 변경 가능하다 List comprehension python의 장점을 살린 list 기능. list에서 내가 원하는 요소를 추출해서 새로운 list를 만들고 싶을 때 주로 사용한다. lst = [2,3,3,5,1,19] #newlist = [x for x in lst if ~] #짝수만 추출하기 new_lst = [x for x in lst if x%2==0] fillter내장함수도..
-
python 2중 배열 문제&행,열 다루기개발 이야기/알고리즘 및 코테 준비 2023. 1. 11. 14:45
#CodeUP 바둑알 십자 뒤집기 6096 https://codeup.kr/problem.php?id=6096 [기초-리스트] 바둑알 십자 뒤집기(py) python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr lst = [[0 for j in range(19)] for i in range(19)] #j column, i row #get input for i in range(len(lst)): lst[i] = list(map(bool, map(int, input().split()))) n = int(input()) for i in range..
-
python 369를 하자개발 이야기/알고리즘 및 코테 준비 2023. 1. 6. 16:10
문제: 특정 숫자 n을 입력했을 때 그 수까지 공백을 두고 수를 출력한다. 이때 3, 6, 9 중 하나라도 포함되어 있으면, 그 수 대신 영문 대문자 X를 출력한다. 33과 같이 3,6,9가 두 번 들어간 수 일때, "X"과 같이 X를 출력하는 형태도 있다. 풀이: 이 문제는 생각보다 간단(?)하게 해결할 수 있다.수를 문자열로 바꾸고, slicing한 후 for문을 돌면서 3,6,9가 몇개가 있는지 count하면 된다. 이 때 3, 6, 9를 ==로 확인 가능하지만 %3==0으로 확인할 수도 있다. 다만 후자의 경우 0도 포함되기에 0인 case는 제외해줘야한다. 코드는 아래와 같다, n = int(input()) for i in range(1,n+1): s = str(i) count = 0 for x..