일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- algorithm
- DFS
- 클린코드
- SWEA
- 정렬
- 자바
- SQL
- java
- android
- Web
- Color
- BFS
- 검색트리
- front-end
- 알고리즘
- Kotlin
- 순환
- CleanCode
- DP
- 코딩테스트
- CSS
- codecademy
- 다이나믹 프로그래밍
- javascript
- 해슁
- Spring
- html
- 프로그래머스
- inflearn
- 구현
- Today
- Total
목록전체 글 (183)
깡뇽
Silver 2에 해당하는 문제이다. 수열의 크기와 수열을 이루는 값들이 입력되었을 때에 수열의 가장 긴 증가하는 부분 수열의 길이를 출력해야 한다. 11053번 가장 긴 증가하는 부분 수열 풀이 [시도1] 틀렸습니다 n = int(input()) numbers = list(map(int, input().split())) cnt = 0 for i in range(n): if i == 0: num = numbers[i] else: if num < numbers[i]: num = numbers[i] cnt += 1 else: continue print(cnt+1) 입력받은 numbers를 검사하면서 이전의 값과 비교해서 크면 카운트를 해주도록 코딩했는데 틀렸다... dp 개념을 사용해야 한다고 하는데.. 사..
Siver 4 레벨에 해당하는 문제이다. 이전에 풀었던 스택 문제와 같은 자료 구조 시리즈이다. 10845번 큐 풀이 [시도1] pypy3 맞았습니다!! import sys n = int(input()) queue = [] for i in range(n): say = sys.stdin.readline().rstrip() if 'push' in say: num = say.split() queue.append(num[-1]) elif say == 'pop': if len(queue) == 0: print(-1) else: print(queue[0]) queue = queue[1:] elif say == 'size': print(len(queue)) elif say == 'empty': if len(queue..
Day7 구현 문제풀기 - 게임 개발 (난이도 중) N X M 크기의 직사각형 맵에서 각 칸은 육지 또는 바다로 이루어져 있다. 캐릭터는 동서남북 중에 한 방향을 바라보고 있으며, 상하좌우로 육지로 움직일 수 있다. 1. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례로 갈 곳을 정함. 2. 캐릭터의 바로 왼쪽 방향에 아직 방문하지 않은 칸이 있으면, 왼쪽 방향으로 회전한 다음 왼쪽으로 한 칸 전진함. 왼쪽 방향에 칸이 다 방문한 칸이면, 왼쪽 방향으로 회전만 하고 1단계로 돌아감. 3. 만약 네 방향 모두 이미 가본 칸이거나 바다로 된 칸이면, 바라보는 방향을 유지한 채로 한 칸 뒤로 가고 1단계로 돌아감. 단, 이때 뒤쪽 방향이 바다인 칸이라 뒤로 갈 수 ..
Siver 4 레벨에 해당하는 문제이다. 금방끝내고 싶어서 이 문제를 골랐는데 이상하게 더 많은 틀렸습니다를 만났다... 자료 구조 중에서 스택 구조를 경험해 볼 수 있는 문제이다. push를 하면 스택에 값을 넣고, pop는 스택의 맨 윗 값을 제거하며 반환하고, size는 스택의 크기를 알려주고, empty는 스택이 비워짐을 확인해주고, top은 스택의 맨 윗 값을 반환한다. 10828번 스택 풀이 [시도n] pypy3 맞았습니다!! import sys n = int(input()) stack = [] for i in range(n): say = sys.stdin.readline().rstrip() if 'push' in say: num = say.split() stack.append(num[-1])..
Day6 구현 문제풀기 - 왕실의 나이트 (난이도 하) 나이트가 8 X 8 좌표 평면에서 L자 형태로만 이동할 수 있을 때, 나이트의 이동 경로 경우의 수를 출력해야 한다. 행 위치는 1~8, 열 위치는 a~h로 표현한다. 1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동 2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동 ex) 나이트의 위치 : a1 → 2가지 경우(1. c2 / 2. b3) 첫째 줄 : 나이트의 현재 위치 좌표 문자열 입력. 왕실의 나이트 풀이 from string import ascii_lowercase alphabets = list(ascii_lowercase) #알파벳 소문자 리스트 생성 n = input() w = alphabets.index(n[0]) + 1 #알파..
인천인재평생교육진흥원 「컴퓨터활용능력 1급 실기 - 스프레드시트 실무 (2021 개정)」을 들으면서 정리하는 글입니다. #1 데이터 유효성검사 조건에 맞는 데이터만 입력받기 위해서 사용됨. 상단 [데이터] - [데이터 도구]그룹 - [데이터 유효성 검사] - [데이터 유효성 검사] - 설정 : 어떤 데이터가 입력될 것인지 설정. [제한 대상] 설정 → [원본] 등 설정 ex1) [제한 대상] : 목록 → [원본] : 직접 입력(,) 또는 드레그 지정 또는 수식에서 사용 ex2) [제한 대상] : 정수 → [최소값]과 [최대값] : 숫자 입력 ex3) [제한 대상] : 텍스트 길이→ [제한 방법] : 부등호 입력 → [길이] : 숫자 입력 - 설명 메시지 : 마우스 올려두면 설명 메시지가 보임. - 오류 ..
이코테 책의 그리디 파트에서 1이 될 때까지 문제를 풀고 난 이후에 이 문제를 발견해서 비슷하겠지 싶어서 도전해 보았다. 1463번 1로 만들기 풀이 [고민] n = int(input()) cnt = 0 while n != 1: if n % 3 == 0: n = n / 3 cnt += 1 else: if n % 2 == 0: n = n / 2 cnt += 1 else: n = n - 1 cnt += 1 print(cnt) 1이 될 때까지 문제를 풀었을 때는 2가지 경우여서 간단하게 풀 수 있었지만 이 문제는 단순히 횟수만 구해서는 안된다. 처음에는 너무 간단하네~ 하고 예제 입력 10을 넣었더니 3이 나와야하는데 4가 출력되었다. 10 -> 9 -> 3 -> 1로 3번 만에 가능하기 때문이다. 즉, 3으..
Day5 구현 → 완전 탐색(모든 경우의 수를 다 계산하는 방법), 시뮬레이션(문제에서 제시한 알고리즘을 차례대로 직접 수행) 파이썬 데이터의 개수(리스트의 길이) : 1,000 → 메모리 사용량 약 4KB 1,000,000 → 약 4MB 10,000,000 → 약 40MB 주의) 리스트를 여러 개 선언하고, 그중에서 크기가 1,000만 이상인 리스트가 있다면 메모리 용량 제한으로 문제를 못 풀 수도 있음. 1초에 2,000만 번의 연산 수행 가능하다고 가정. 시간 제한이 1초, 데이터의 개수 100만 개인 문제는 시간 복잡도 O(NlogN) 이내의 알고리즘을 이용하여 풀어야 함. 예제1) 상하좌우 Q. N X N 크기의 정사각형 공간을 L(왼쪽)..
인천인재평생교육진흥원 「컴퓨터활용능력 1급 실기 - 스프레드시트 실무 (2021 개정)」을 들으면서 정리하는 글입니다. 끝으로 이동 또는 연속된 셀 끝으로 이동 : Ctrl + 방향키 A1으로 이동 : Ctrl + Home 문자, 정수, 실수, 날짜(-), 시간(:), 분수(0 3/5) 두 줄 입력 : Alt + Enter 오늘 날짜 : today() 또는 Ctrl + ; 현재 시간 : Ctrl + Shift + ; 기준 날짜 : 1900-01-01 -> 7을 입력하면 1900-01-07 서식포함 지우기 : [홈] - [지우기] - [모두 지우기] 범위 지정 : 드레그 또는 첫 셀 클릭 → Shift + 클릭 지정된 범위에 내용 채우기 : 내용 입력 → Ctrl + Enter 선택 셀 지정 : Ctrl ..
Day4 그리디 문제풀기 - 1이 될 때까지 (2018 E 기업 알고리즘 대회 기출 / 난이도 하) N이 1이 될 때까지 2개의 과정 중 하나를 반복해서 수행하고, 과정 수행의 최소 횟수를 출력해야 한다. 단, 2번 과정은 N이 K로 나누어떨어질 때만 수행할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 첫째 줄 : N(2≤N≤100,000), M(2≤k≤100,000) 자연수 입력. 공백 구분 N은 항상 K보다 크거나 같다. 1이 될 때까지 풀이 n, k = map(int, input().split()) cnt = 0 while True: #n이 1이 되면 반복문 중단 if n == 1: break #n이 1이 아닌 경우 else: #n이 k로 나누어 떨어지면 나눗셈 진행 if n % k..
Day4 그리디 문제풀기 - 숫자 카드 게임 (2019 국가 교육기관 코딩 테스트 기출 / 난이도 하) 주어진 룰을 지켜 가장 높은 숫자가 쓰인 카드 한 장을 뽑아야 한다. 1. 숫자 카드들은 N(행) X M(열) 형태로 배치된다. 2. 먼저 뽑을 카드가 있는 행을 선택한다. 3. 그다음 선택된 행에 있는 카드들 중 가장 낮은 숫자 카드를 뽑는다. 4. 즉, 처음에 카드를 고를 행을 선택할 때에 나중에 해당 행에서 가장 낮은 숫자의 카드를 뽑을 것을 미리 고려해서 최종적으로는 가장 높은 숫자의 카드를 뽑도록 해야 한다. 첫째 줄 : N, M 자연수 입력. 공백 구분 둘째 줄 : N개의 줄 입력. 카드에 적힌 숫자들 숫자 카드 게임 풀이 n, m = map(int, input().split()) numbe..
Siver 4에 해당하는 문제이다. 주어진 수 N개 중에서 소수가 몇 개인지 찾고, 소수의 개수를 출력하는 문제이다. 1978번 소수 찾기 풀이 파이썬 연산자 중에서 %는 나머지를 찾아준다. ( /는 나눈 몫의 실수형, //는 나눈 몫의 정수형 ) 소수에는 1이 포함되지 않는다. 1 이외의 자연수 중에서 1과 자기자신으로만 나누어 떨어지는 수를 소수(prime number)라고 말한다. [시도1] pypy3 틀렸습니다 import sys n = int(sys.stdin.readline()) numbers = list(map(int, sys.stdin.readline().split())) cnt = 0 for i in numbers: #1은 소수가 될 수 없으므로 1이 아닌 모든 수 if i != 1: f..