bfs의 원리 1. 시작노드를 큐에 넣고 방문했다는 표시를 함 2. 큐에서 원소를 하나 빼고, 인접한 노드들에 대해 3번을 진행함 3. 방문했으면 아무것도 하지 않고, 방문하지 않았으면 원소를 큐에 넣고 방문했다는 표시를 함 4. 큐에 원소가 빌때까지 2번을 반복함 모든 칸이 큐에 1번씩 들어가므로 시간복잡도는 칸이 N개일 때 O(N) 참고 블로그: https://blog.encrypted.gg/941 [실전 알고리즘] 0x09강 - BFS 안녕하세요 여러분, 드디어 올 것이 왔습니다. 마음의 준비를 단단히 하셔야 합니다.. 드디어 실전 알고리즘 강의에서 첫 번째 고비에 도달했는데 이 강의와 함께 이번 고비를 잘 헤쳐나가면 좋 blog.encrypted.gg 1260번을 한 번 풀어보겠다 https://..
튜플 자료형 튜플은 한 번 선언된 값을 변경할 수 없다 리스트는 대괄호 []를 이용하지만, 튜플은 소괄호()를 이용합니다 사전 자료형 data=dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' data['코코넛'] = 'Coconut' key_list=data.keys() value_list=data.values() print(key_list) # dict_key(['사과', '바나나', '코코넛']) print(value_list) # dict_values(['Apple', 'Banana', 'Coconut']) for key in key_list: print(key) # Apple # Banana # Coconut 집합 자료형 중복을 허용하지 않는다 순서가 없..
실수형 a=0.3+0.6 print(a) #0.89999999 if a==0.9: print(True) else: print(False) #False 수 자료형의 연산 a=7 b=3 # 나누기 print(a/b) #2.3333333333335 # 나머지 print(a%b) #1 # 몫 print(a//b) #2 리스트의 인덱싱과 슬라이싱 a=[1,2,3,4,5,6,7,8,9] # 두 번째 원소부터 네 번째 원소까지 print(a[1 : 4]) 끝 인덱스는 실제 인덱스보다 1을 더 크게 설정한다 리스트 컴프리헨션 # 0부터 9까지의 수를 포함하는 리스트 array=[i for i in range(10)] print(array) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 0부터 19까지의..
stages배열이 주어지면 반복문을돌면서 1~N까지의 도전중인 사용자(challenging), 스테이지를 클리어한 사용자(clear)를 count 해준다 challenging과 clear모두 해당 인덱스보다 크거나같아야한다 그렇게 challenging, clear를 통해 실패율을 구해주고, vector을 넣어주어 실패율을 기준으로 내림차순으로 정렬해주고, 실패율이 같으면 인덱스를 기준으로 오름차순으로 정렬해준다 #include #include #include #include using namespace std; bool cmp(pair & a, pair &b){ if(a.second==b.second){ return a.firstb.second; } vector solution(int N, vector ..
n값입력이주어지면 1부터 n까지 소수의 개수를 출력하는 문제다 소수판별을 에라토스테네스의 체로 풀어야 통과가되는것같다 에라토스테네스 체가 좀 오래간만이라 헷갈렸는데 일단 n이 입력되면 동적할당으로 n+1만틈 bool 배열을 만들어주고 모두 true로 초기화한다 false는 소수가아니다 라는 의미고 true는 소수다 라는 의미다 n이 만약에 20이라고하면 4*425이므로 1~4까지만 반복문을돌며(1은 사실돌필요가없다) 2~4까지만 반복문을 돌며 각각의 배수를 2->2,4,6,8,10,12,14,16,18,20 3->3,6,9,12,15,18 을 false로해줌 4는 소수가아니므로 반복문안돔(왜냐하면 2가 먼저 다 표시해주었기때문에) 4의배수 4,8,12,16,20을 돌필요가없음 그렇게 해서 2,3,5,7,..
0이 입력되면 최대 값 혹은 0 출력, 그 외의 값이 입력되면 배열에 저장 처음 생각했던 코드 deque로 최댓값 한개를 맨앞에 두고 0이 입력됐을때 pop하고 최댓값을 또 맨앞에 두는 방식 정렬되지 않은 리스트에서 최댓값을 찾기 위해 0이입력될때마다 완전탐색을 했다 #include #include #include using namespace std; int findidx(deque dq); bool cmp(int a, int b){ return a>b; } int main(){ deque dq; int n; cin>>n; int max=0; for(int i=0; i>temp; if(dq.size()>0){ max=dq[0]; } if(temp==0){ if(dq.size()==0){ cout
- Total
- Today
- Yesterday
- 인프콘2024
- authorization_code
- 데이터 3법
- git 예전 커밋 수정
- oauth2.0
- SQL
- kloa
- CSS
- javascript
- html #웹 #웹사이트 #플레이리스트
- infcon 2024
- authorization code
- 데이터3법
- 프로그래머스
- 오픈소스
- html
- Android Studio
- 우분투
- 2024인프콘
- git
- 데이터베이스
- oauth
- DDL
- 클로아
- SpringBoot
- 리눅스
- bfs
- 로스트아크 캐릭터
- DML
- git commit 수정
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |