일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Level1
- 알고리즘_스터디
- 최단경로
- 다시보기
- dfs
- 프로그래머스
- 단계별문제풀이
- ODQA
- 백준
- 그리디
- Level2_PStage
- 이진탐색
- 백트랙킹
- 정렬
- 구현
- 기술면접
- 글또
- Level2
- 알고리즘스터디
- 파이썬 3
- 부스트캠프_AITech_3기
- 이코테
- python3
- 개인회고
- 그래프이론
- mrc
- dp
- 부스트캠프_AITech3기
- 주간회고
- U_stage
- Today
- Total
목록다시보기 (43)
국문과 유목민
1. 문제 - 특이하게 생긴 얼음 틀에 얼음을 몇 개나 만들 수 있는지를 구함 - 주변에 유사한 값의 개수를 찾는다. 2. 코드 구현 n, m = map(int, input().split()) ice = [] for _ in range(n): ice.append(list(map(int, input()))) # True의 개수만 셀 수 있게 만들어준다. def dfs(x, y): if x =n or y>= m: return False if ice[x][y]==0: ice[x][y] = 1 dfs(x-1, y) dfs(x, y-1) dfs(x+1, y) dfs(x, y+1) return True return False result = 0 for i in range(n): fo..
1. 문제 - 게임 판 위에서 캐릭터를 이동시켜 방문한 칸의 수를 출력하는 프로그램 2. 코드 # 문제 입력 조건 n, m = map(int, input().split()) x, y, d = map(int, input().split()) tmp = [[0]*n for _ in range(m)] game_map = [] for i in range(m): game_map.append(list(map(int,input().split()))) # 북, 동, 남, 서 (순서 주어짐) # 행 열 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] # 왼쪽으로만 돌기 때문 def turn_left(): global d d -= 1 if d == -1: d = 3 turn_time = 0 tmp[x][..
0. 문제 링크) https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 1. 알고리즘 계획 각 키패드의 규칙을 확인 (3으로 나눴을 때 나머지가 동일하게 나타난다.) 그 규칙을 토대로 배열의 행과 열 위치를 설정한다. Left규칙과 Right규칙을 설정한다. 만약 Mid에 위치한 번호를 누를 경우 '왼손과..
0. 문제 링크) https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 1. 알고리즘 계획 ※ 일부 알고리즘을 검색함 - 초기에 방향성을 잡지 못해서, '정규식'에 대한 키워드를 검색했다. 정규식을 이용해 문자열을 슬라이싱한다. 각 부분에 해당하는 부분들을 if문으로 나눠 구분한다. 자주 사용되는 부분은 다른 함수로 빼서 코드를 단축시킨다. #이나 *의 기호의 경우 특수한 경우로서 한 번 더 생각해줘야 한다. 2. 나의 코드 import re def solution(dartResult): # 정규식 이용 p = re.compile('\d+\D[*#]?') ls = p.findall(da..
0. 문제 링크) https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 1. 알고리즘 계획 정수값을 이진수로 가공한다. for문을 돌면서 규칙에 해당하는 값으로 새로운 리스트르 만든다. 다른 for문에서 새로운 리스트를 돌면서 값을 변화시켜준다. 2. 나의 코드 def solution(n, arr1, arr2): ls2 = [] answer = [] # 정수 가공 tmp1 = ['0'*(n-len(forma..
0. 문제 링크) 1. 알고리즘 계획 ※ 이론을 검색해서 참고함 - 최대공약수와 최소공배수의 성질 이해 - 최대공약수 찾기 x와 y를 곱한 값을 만든다. x % y = 0 이면, gcd(x, y) == y 성립 x % y != 0 이면, gcd(x, y) != y '2.'가 만족될 때까지 '3.'을 반복 - 최소공배수 찾기 최소공배수는 최소공약수 값으로 두 수의 곱을 나누면 나온다. 2. 나의 코드 def solution(n, m): x = n*m while m: n, m = m, n % m return [n, x//n] ※ 코드 또한 검색해서 참고함 - 최소 공약수는 위의 알고리즘대로 진행 - 최소 공배수 또한 위의 알고리즘대로 진행 3. 다른 사람의 코드 def gcdlcm(a, b): c, d = ..