본문 바로가기

코딩테스트46

SET, MAP sys로 input을받을때 , .rstrip()을 붙여주면 자동으로 제거된다. .split()은 배열형태로 받음에 기억 sys를 input에 하려면, input.split()을 포함해서 작성해야 한다. input시 마다 이름이 열림에 주의하자. Set은 ,집합 형태로, 중복이없다 S.add()로 추가한다. S.remove로 제거한다 dict를 초기화 하는 방법도 기억하자. 백준 10816 dict는 hash로 구성되어 삽입 , 정렬, 모든것들이 O(1)이다. 몇개있는지를 찾는법. NARR을 받아서 -> (list(map(int,sys~~~.split())으로 받은것 하나하나씩을 int로 변경하여 list로 넣을수있따. 그것들을 dictionary에 넣는다. for i in Narr : if i in cn.. 2024. 1. 7.
정렬 사실 파이썬 정렬은 arr.sort(reverse=True)이것만 알아도 너무너무 쉽다. 하지만.. N이 굉장히 큰 경우가 시간초과 문제가 발생한다. FOR문의 최소화를 목표로 두고 진행해야겠다. 2751 for i in a: ... print(i) 핵심 코드이다. a라는 배열에서, 1개 1개씩 index를 출력할 수 있고, 시간 복잡도가 해당 a배열을 생성해서 출력하는 것보다 훨씬 빠르다 . sort는 원 배열까지, sorted(배열)은 원배열 값에 영향을 미치지 않는다. 다만 sort는 return값이 None . sorted()는 return 값이 완성된 애를 리턴해준다. 정렬만하면될땐 sort, 값을 받아낼땐 sorted를 쓰자. code상엔 당연히 문제가 없었지만, 파이썬의 sort는 timso.. 2024. 1. 1.
BRUTE FORCE 모든 경우의 수를 하나하나 찾는 것이다 . (알고리즘 시간에 배운것을 기억하자! ) 1018번. 굉장히 어려웠다. . 아하, 한 행 별로 비교하는 것이 아니고, 맨 왼쪽위 배열의 형태를 보고, 이에 맞춰 ROW+COL이 W나 B임에 따라 다른 것을 찾는 코드로 하는 방법이 더 현명하다. *bruteforce != 써진 그대로 코드 작성임에 주의하자 n, m = map(int,input().split(" ")) arr = [] for _ in range(n): arr.append(list(map(str, input()))) best_update = -1 # N X M 보드 전체검사 for N in range(n-7): for M in range(m-7): white_first = 0 black_first .. 2023. 12. 31.
일반 식의 알고리즘 29일 밤인가 30일 인가.. bronze 1 달성했다. 알고리즘의 난이도가 어느정도 높아지면, 내가 주로 사용했던 1. n 넣어보기 2. n끼리 넣어가며, 내 풀이와 맞는지 확인 3. 특징을 찾아서 이를 재귀식 표현 이것이 잘 보이지 않는 경우가 있다. 허나 꼭 풀이가 아니더라도 풀다보면 nc3이나, 일반 상수들이 합과 같은 형태로 나온다. 이러한 특정을 유심히 보자. ... a,b =input().split() c= int(input()) n0=int(input()) a1 = int(a) a0 = int(b) if a1 > c : print(0) #c는 양의정수이므로. elif a1==c: if a0 = (a0/(c-a1)) : print(1) else : print(0) else : if n0 >=.. 2023. 12. 30.
코딩테스트 2 -> 문자열 부터 백준 2675 : B라는 문자열의 [I번째]를 * 3하면 저절로 해당 숫자가 3배로 PRINT되어 나옴 . 즉 INT와 문자열의 곱셈이 가능함에 유의하자. 백준 2908 : 숫자를 아예 뒤집는법 \ num1, num2 = input().split() num1 = int(num1[::-1]) -> 특정 내용은 없으며, 뒤에서부터 처음까지 뒤집는 의미가 존재한다 X[::-1]을 기억하자 백준 1157 index 함수의 사용법 . a라는 list에서 a.index(3) 중복이 없는 문자열 생성법 word = input().lower() word_list = list(set(word)) #중복제거 특정 LIST에서, 일정한 조건 EX) MAX값을 가지는 INDEX의 수가 2개 이상일때 를 표현하는 법 if an.. 2023. 12. 25.
백준 코딩테스트 - 알고리즘 전까지 프로그래머스와의 간격차이 좁히기가 어렵지만, 그래도 파이썬으로 잘 해보겠다. 1000번문제 -> a와 b의 동시 입력임을 인지하지못했다. input("입력해").split()으로 a,b를 받아, 이에 int(a)+int(b)로 해결 프로그래머스와의 차이발견. 프로그래머스는 결과치만 일치하면 답으로 되었는데, 프로그래머스에서 처음 공부했기 때문에 print와 같은 곳에 메시지를 추가했다. 백준은 모든 조건을 일치해야한다. 쓸데없는 print 사용하지 말아야겠다. 10172번 귀여운 강아지 출력 -> escape에 대한 예시인것 같고, sql은 알지만 파이썬으로 escape는 몰라 찾아보았다. 더 좋은 풀이) escape 보단, "는 '로 감쌀수 있고 파이썬은 "와 '를 구분하지 않기 때문에. 역 슬래시만 .. 2023. 12. 21.