전체 글

개발..해볼까?
코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 2875번 : 대회 or 인턴

https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 내 코드 import sys input = sys.stdin.readline ans =0 remain = 0 n, m, k = map(int, input().split()) #m의 수가 출전할 수 있는 최대 팀 수 if n =1 and n+m >= k+3: n-=2 m-=1 ans += 1 print(ans) 내 코드는 모든 조건을 따지면서, 그 조건에 맞으면 또 맞아야 하고 또 맞아야 하고... 의 반복이었다. 그런데 이 코드는 맞는..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 1094번 : 막대기

https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 내 코드 다른 사람의 코드 print(bin(int(input())).count('1')) 2로 나누어 떨어지는 수는 이진법이기 때문에 1의 개수로 표현할 수 있다. 이 코드 보고 너무 천재적인 것 같아서 헉했다. 이렇게 푸는 방법도 있구나. 새롭게 bin이라는 이진수 함수에 대해서도 배우게 되었다.

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 1049번 : 기타줄

https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline result =0 remain =0 n, m = map(int, input().split(' ')) minpack = 1001 minsing = 1001 for i in range(m): p, s = map(int, input().split(' ')) minpack = min(minpack, p) minsing = m..

코딩테스트 대비/Python 문법

[Python] 람다 표현식 사용하기

람다 표현식을 이용해서 함수 만들기 def add(x1): return x1 + 1 이게 기본적인 함수인데, 이 add라는 함수를 람다 표현식으로 다시 만들어볼 수 있다. lambda x1: x1 + 1 #람다 표현식 = 익명 함수 람다 표현식 만들어서 사용하는 방법 1. 변수에 할당하기 lambdaDef = lambda x1: x1 + 1: lambdaDef(1) >>2 단순히 람다 표현식만 쓰면 안 되고, 람다 표현식을 이처럼 변수에 할당해주어야 사용할 수 있다. 변수 = lambda A: B 이 형식인데 A는 def add(A)의 A이고, B는 def에 등장하는 식이다. 2. 람다 표현식을 호출해서 사용하기 #(람다 표현식)(대입하고 싶은 수) (lambda x1: x1 + 1)(1) 이렇게 대입하..

코딩테스트 대비/Python 문법

[Python] 파이썬 타입 힌트 / 힌팅 / 어노테이션

타입 힌트 예상하지 못한 타입이 할당되면 오류라고 생각할 수 있다. 또한, 구문을 해석할 때 타입에 대한 힌트가 있다면 해석이 더 용이할 것이다. 이를 위해 파이썬에는 3.5부터 타입 힌트가 생기기 시작했다. 하지만 실제 영향을 주지 않는다. str으로 타입 힌트를 설정했으나, int와 같은 정수형 수를 쓸 수도 있다는 의미이다. 결국 타입 힌트는 단순히 구문의 이해를 위해서 존재하는 힌트라고 볼 수 있다. 타입 표기 방법 타입 힌트는 인수 뒤에 콜론을 붙여 만들어진다. string: str = "hello" name: str = "bee" number: int = "1234" id: int = "11" 변수 뒤에 붙은 : str , : int 이런 것들이 타입 힌트이다. 이는 컴파일도 되지 않는다. 기..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 16916번 : 부분 문자열

https://www.acmicpc.net/problem/16916 16916번: 부분 문자열 첫째 줄에 문자열 S, 둘째 줄에 문자열 P가 주어진다. 두 문자열은 빈 문자열이 아니며, 길이는 100만을 넘지 않는다. 또, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net > 내 코드 import sys input = sys.stdin.readline string = input().strip() part = input().strip() if part in string: print(1) else: print(0) ☞ 시간 초과 > KMP 알고리즘 문제 자체가 쉬워서 쉽게 접근했다가 자꾸 시간 초과가 발생하여 구글링을 해봤다. 2022년까지는 나처럼 쉽게 접근해서 푼 사람이 많았는데, 그 이후에..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 10757번 : 큰 수 A+B

https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 내 코드 a, b =map(int, input().split()) print(a+b) 파이썬 숫자 허용 범위 C 코드로 풀이하면 어려운 풀이이지만 파이썬은 가능하다. 파이썬은 정수의 범위가 무제한이라는 특징이 있다. 파이썬의 데이터 범위 문자 str 무제한 무제한 정수 int 무제한 무제한 실수 float 8Byte 4.9×10^-324~1.8×10^308 complex 16Byte 4.9×10^-324~1.8×10^308

코딩테스트 대비/코딩테스트 꿀팁

코테 유형 분석하기(DFS, BFS, 스택, 큐, 힙, DP..)

시간복잡도는 매우 중요하다. 문제에서 주어진 N을 문제의 힌트라고 생각하기! DFS 삼성 역량테스트에 가장 많이 출제됨 사이클이 존재할 경우 한 가지 정점과 연결된 모든 정점을 탐색하는 경우(일반적인 DFS 알고리즘 사용) 이동할 때마다 가중치가 붙을 때는 DFS로 구현하기 DFS는 해에 도착하면 탐색을 종료하기 때문에 최단 경로라는 보장이 없다. 최단 경로는 무조건 BFS! => x를 루트로 하는 트리에서, x의 모든 자식값을 더해주는 함수 => visited 배열을 자주 사용하는데, 예를 들어 graph[1][2] 가 있을 때 1에서 2를 방문했다면, 2에서 1을 방문하는 것을 방지하고자 할 때 사용한다. 만약 방지하지 않는다면, 무한루프가 발생할 수 있다. 단방향이라면 할 필요는 없다. BFS 재귀..

bee22
beeee