일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Spring
- 백준 16719
- spring security
- 백준 16236
- re.split
- Spring Boot
- MySQL
- 웹어플리케이션 서버
- with recursive
- 백준 16235
- spring cloud
- Kotlin
- MSA
- sql 기술면접
- 프로래머스
- Coroutine
- java
- spring oauth
- 백준 파이썬
- 프로그래머스
- 백준 19238
- JPA
- 백준 15685
- java 기술면접
- 백준
- 파이썬
- JVM
- 백준 17779
- springboot
- 백준 17626
- Today
- Total
목록파이썬 (92)
시작이 반
문자열, 사전을 활용한 문제 . 을 기준으로 문자를 나눠서 확장자를 key로 사전에 등록한다. 사전을 정렬한다. key를 기준으로 정렬하는 방법 dict = {'A' :1,'D' :4,'C' :3,'B' :2} sdict= sorted(dict.items()) # items() 함수는 key-value 쌍이 tuple로 구성된 리스트가 리턴됩니다. #>> [('A', 1), ('B', 2), ('C', 3), ('D', 4)] value를 기준으로 정렬하는 방법 dicts = {'A' :4,'D' :1,'C' :2,'B' :3} sdicts= sorted(dicts.items(), key=lambda x: x[1]) # items() 함수는 key-value 쌍이 tuple로 구성된 리스트가 리턴됩니다...
구현 문제이다. 남자일 경우 받은 숫자의 배수의 스위치를 반전시킨다. 여자일 경우 받은 숫자의 대칭되는 스위치를 반전시킨다. ex) 번호 1 2 3 4 5 6 7 8 스위치 0 1 0 1 1 1 1 0 일떄 받은 숫자가 6이라면 0 1 0 1 0 0 0 0 이된다. 구현은 쉽다. 하지만 출력 형식이 20개씩 잘라서 출력하는 것임을 명심하자! n = int(input()) switch = list(map(int, input().split(' '))) students = int(input()) receive_n = [tuple(map(int, input().split(' '))) for _ in range(students)] # 1: 남, 2: 여 for i in range(students): if rece..
구현문제이다. 열린 칸 주변에 지뢰가 몇개 있는지 확인(해당 위치에서 8방향) 하여 숫자를 출력한다. 만약 연린 칸에 지뢰가 있다면 모든 지뢰 또한 출력한다. 이중 반복문을 이용하여 구현하였다. dx, dy를 사용하여 좌표를 구하였음 n = int(input()) graph1 = list(input() for _ in range(n)) graph2 = list(input() for _ in range(n)) answer = [['.'] * n for _ in range(n)] dx = [-1, -1, -1, 0, 1, 1, 1, 0] dy = [-1, 0, 1, 1, 1, 0, -1, -1] def findBoom(): for i in range(n): for j in range(n): if graph1..
구현 문제이다. 사회자가 숫자를 부르면서 빙고판을 색칠해 가는데 빙고가 3개가 나오면 사회자가 몇번째에 빙고가 나왔는지 출력하는 문제이다. visited 리스트를 만들어서 사용하였다. 2차원배열의 전체에 해당하는 list row만 확인하는 list col만 확인하는 list 대각선을 확인하는 list list를 채우는 방식 만약 2차원 visited에서 0행이 빙고가 완성되면 row[0] 을 True로 바꿔준다. 열과 대각선도 마찬가지이다. 대신 대각선은 0, 1 로 이루어져있다. True의 개수를 3개 이상일때까지 row list, col list, 대각선 list를 확인한다. bingo = [list(map(int, input().split(' '))) for _ in range(5)] targets..
구현 문제이다. 울음소리를 보고 최소한의 오리가 몇마리인지 찾는다. 오리의 울음소리는 quack이다. q -> u -> a -> c -> k 를 순서대로 찾는다. ex) 울음소리가 quqacukqauackck 라면 quack를 순서대로 찾는다. quqacukqauackck 여기서 k 다음에 또 quack가 있다면 한마리의 오리가 연속으로 2번 소리를 낼 수 있다. (최소한의 오리 수를 찾아야 하기떄문에 중복가능) quqacukqauackck 즉 한 오리가 이렇게 소리를 낸다. 방문한 문자는 visited 리스트를 만들어 방문처리를 한다. 다음 오리는(파란색) quqacukqauackck 방문하지 않은 문자를 보고 quack를 찾는다. 녹음한 소리가 올바르지 않은 경우 - 문자열을 모두 방문을 하지 않았을..
소 리스트를 만들어 처음 관찰된 소들은 해당 위치를 저장한다. 처음 관찰된 소가 아니면 저장된 위치와 해당 위치를 비교하여 다르면 count를 증가시킨다. n = int(input()) cow = [-1] * 11 cnt = 0 for _ in range(n): target_cow, position = map(int, input().split(' ')) if cow[target_cow] == -1: cow[target_cow] = position else: if cow[target_cow] != position: cnt += 1 cow[target_cow] = position print(cnt)
구현 문제이다. 시작 좌표를 구한다. x = n / 2 y = n / 2 시작좌표에서 시작하여 상, 우, 하, 좌를 돌면서 1씩 더해간다. 이동 횟수는 정수(제곱근수) 만큼 이동한다. ex) 상 2 2의 제곱근 1.xxxx 위로 한칸까지 이동할 수 있다. 1칸 이동했으므로 오른쪽 확인 우 3 3의 제곱근 1.xxxx 오른쪽으로 한칸까지 이동할 수 있다. 1칸 이동했으므로 아래 확인 하 4 4의 제곱근 2 아래로 두칸까지 이동할 수 있다. 하 5 5의 제곱근 2 2칸 이동했으므로 왼쪽확인 ....... n = int(input()) target = int(input()) graph = list([0] * n for _ in range(n)) s_x, s_y = n // 2, n // 2 graph[s_x]..
구현 문제이다. 준현이는 현재 가진돈에서 주식을 살 수 있으면 살 수 있는 개수만큼 전량 매수하고 팔지 않는다. 성준이는 가격이 연속으로 3일 하락하면 해당 날에 주식을 전량 매수한다. 또한 가격이 연속으로 3일 상승하면 해당 날에 주식을 전량 매도한다. 마지막 날에 남은 돈과 주식을 갖고 있는 개수를 구하여 서로 비교한다. money = int(input()) stocks = list(map(int,input().split())) def jun(): left_money = money stock_n = 0 for stock in stocks: stock_n += left_money // stock left_money = left_money % stock if left_money == 0: break re..