PS/BOJ
백준 1068 트리 파이썬 풀이
백준 1068 트리 파이썬 풀이
2022.06.23정답 코드 # BOJ 1068 트리 # 2022 06 23 08:39 - 09:12 import sys input = sys.stdin.readline def main(): v = int(input()) graph = [[] for _ in range(v) ] connection = list(map(int,input().split())) root = -2 for idx, value in enumerate(connection): if value == -1: root = idx else: graph[value].append(idx) deleteNode = int(input()) if deleteNode == root : print(0) return # print(graph) parentNode = conne..
백준 1240번 노드 사이의 거리 파이썬 풀이
백준 1240번 노드 사이의 거리 파이썬 풀이
2022.06.22정답 코드 #BOJ 1240 #2022 06 17 05:56~ import sys from collections import deque input = sys.stdin.readline def main(): n, m = map(int,input().split()) graph = [[] for _ in range(n+1)] for _ in range(n-1): v1, v2, d = map(int,input().split()) graph[v1].append((d,v2)) graph[v2].append((d,v1)) ans = [] for _ in range(m): v1, v2 = map(int,input().split()) cur=v1 distance=0 q = deque() q.append((0,v1)) v..
백준 1039번 교환 파이썬 풀이
백준 1039번 교환 파이썬 풀이
2022.06.08K번 할 수 없는 경우는? M이 1이하인 경우 M에서 0인 자리수를 전부 뺐을 떄 1이하 라고 생각했는데, 사실 9000이면 0끼리 교환하면 되니까 틀린 조건. 2자리일 때 일의자리가 0인 경우이다. BFS와 DFS의 핵심은 수형도에 있다. 정답풀이 #2022.06.08.00:01 - 00:43 from collections import deque import sys input = sys.stdin.readline def main (): n,k = map(int,input().split()) m = len(str(n)) if m == 1 : print(-1) return if m==2 and n%10 ==0: print(-1) return def swap(cur, i,j): # 12345 1,3 -> 1..
백준 1713 후보 추천하기
백준 1713 후보 추천하기
2022.05.26정답코드 import sys input=sys.stdin.readline n=int(input()) student=int(input()) candidate={} for idx,i in enumerate(list(map(int,input().split()))): if i in candidate: candidate[i][2]+=1 else: if(len(candidate)==n): del candidate[sorted(list(candidate.values()),key=lambda x:(-x[2],-x[1]))[-1][0]] candidate[i]=[i,idx,1] print(' '.join(list(map(str,sorted(candidate.keys())))))
백준 1062 가르침 파이썬 풀이
백준 1062 가르침 파이썬 풀이
2022.05.261차시도 import sys from collections import defaultdict input = sys.stdin.readline def main(): N, K = map(int,input().split()) if K < 5 : print(0) return alphaCheck = 0 wordList = [] for _ in range(N): word = input().rstrip() wordList.append(word) wordSet = set(list(word)) for w in wordSet: alphaCheck |= 1
백준 1759 암호만들기 C++
백준 1759 암호만들기 C++
2022.02.18[문제 링크] https://www.acmicpc.net/problem/1759 [입출력 예] 입력 출력 4 6 a t c i s w acis acit aciw acst acsw actw aist aisw aitw astw cist cisw citw istw [소스코드] //11:57 #include using namespace std; int L, C; char arr[15]; char res[15]; char v[15]; void func(int k){ if( k == L){ bool noVowel=true; int consonantCnt = 0; for (int i=0; iarr[i]; sort(arr,arr+C); func(0); return 0; }
백준 1920 수 찾기 파이썬
백준 1920 수 찾기 파이썬
2022.02.18[문제 링크] https://www.acmicpc.net/problem/1920 [입출력 예] 입력 출력 5 4 1 5 2 3 5 1 3 7 9 5 1 1 0 0 1 [소스코드] import sys input=sys.stdin.readline from collections import deque input() a=list(map(int,input().split())) input() test=list(map(int,input().split())) for i,x in enumerate(test): test[i]=[x,i,0] a.sort() test.sort() a=deque(a) test=deque(test) ans=[] while(a and test): cur_a=a.popleft() cur_test=t..
BOJ 2580 스도쿠 C++
BOJ 2580 스도쿠 C++
2022.02.16[문제 링크] https://www.acmicpc.net/problem/2580 [입출력 예] 입력 출력 0 3 5 4 6 9 2 7 8 7 8 2 1 0 5 6 0 9 0 6 0 2 7 8 1 3 5 3 2 1 0 4 6 8 9 7 8 0 4 9 1 3 5 0 6 5 9 6 8 2 0 4 1 3 9 1 7 6 5 2 0 8 0 6 0 3 7 0 1 9 5 2 2 5 8 3 9 4 7 6 0 1 3 5 4 6 9 2 7 8 7 8 2 1 3 5 6 4 9 4 6 9 2 7 8 1 3 5 3 2 1 5 4 6 8 9 7 8 7 4 9 1 3 5 2 6 5 9 6 8 2 7 4 1 3 9 1 7 6 5 2 3 8 4 6 4 3 7 8 1 9 5 2 2 5 8 3 9 4 7 6 1 [소스코드] //14:54 ..
백준 1182 부분수열의 합 파이썬 풀이
백준 1182 부분수열의 합 파이썬 풀이
2022.02.12[문제 링크] https://www.acmicpc.net/problem/ [입출력 예] 입력 출력 5 0 -7 -3 -2 5 8 1 [소스코드] import sys input = sys.stdin.readline cnt=0 def func (i ,tot): if i==n: if tot==m: global cnt cnt+=1 return func(i+1,tot) func(i+1,tot+arr[i]) n,m=list(map(int,input().split())) arr=list(map(int,input().split())) func(0,0) if(m==0): cnt-=1 print(cnt)
백준 2178 미로탐색 C++
백준 2178 미로탐색 C++
2022.02.10[문제 링크] https://www.acmicpc.net/problem/2178 [입출력 예] 입력 출력 4 6 101111 101010 101011 111011 15 [소스코드] //20:35시작 #include using namespace std; #define X first #define Y second int board[100][100]; int v[100][100]; int n,m; int dx[4]= {1,0,-1,0}; int dy[4]= {0,1,0,-1}; void printBoard(){ for (int i=0; i
백준 3055번 탈출 파이썬
백준 3055번 탈출 파이썬
2022.02.09[문제 링크] https://www.acmicpc.net/problem/3055 [입출력 예] 입력 출력 3 3 D.* ... .S. 3 [소스코드] import sys from collections import deque input = sys.stdin.readline dx=[1,0,-1,0] dy=[0,1,0,-1] r, c = list(map(int,input().split())) board1 = [] Dx, Dy , Sx,Sy=0,0,0,0 water=deque() for i in range(r): tmp=list(input().rstrip()) for j in range(c): if tmp[j]=='D': Dx =i Dy =j if tmp[j]=='S': Sx = i Sy = j if tmp[j..
백준 15683 감시 C++
백준 15683 감시 C++
2022.02.09[문제 링크] https://www.acmicpc.net/problem/15683 [입출력 예] 입력 출력 4 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 6 0 0 0 0 0 0 0 20 [소스코드] #include using namespace std; #define X first #define Y second int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; int n,m; int board1[10][10]; //사무실 정보 저장용 int board2[10][10]; //색칠용 vector cctv; bool OOB (int a, int b){ return a=n || b=m; } // 위치와 방향을 주면, "그 다음 점부터..
백준 9663 N-Queen
백준 9663 N-Queen
2022.02.09[문제 링크] https://www.acmicpc.net/problem/9663 [입출력 예] 입력 출력 8 92 [소스코드] #include using namespace std; bool isused1[40]; bool isused2[40]; bool isused3[40]; int cnt =0; int n; void func(int cur){ if (cur==n){ cnt++; return; } for (int i=0; i>n; func(0); cout
백준 1780번 종이의 개수 풀이
백준 1780번 종이의 개수 풀이
2022.02.09[문제 링크] https://www.acmicpc.net/problem/1780 [입출력 예] 입력 출력 9 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 0 0 0 1 1 1 -1 -1 -1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 -1 0 1 -1 0 1 -1 0 -1 1 0 1 -1 0 1 -1 0 1 -1 1 0 -1 0 1 -1 10 12 11 [소스코드] #include #define endl '\n'; using namespace std; int arr[2187][2187]; int cnt[3]; //0번째 : -1 개수, 1번째: 0 개수 , 2번째: 1 개수 bool checkArr(int r1, ..
백준 17478 재귀함수가 뭔가요? C++
백준 17478 재귀함수가 뭔가요? C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/17478 [입출력 예] 입력 출력 2 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어." __"재귀함수가 뭔가요?" __"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. __마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. __그의 답은 대부분 옳았다고 하네. 그런데 어느 날..
백준 1074번 Z C++
백준 1074번 Z C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/1074 [입출력 예] 입력 출력 2 3 1 11 [소스코드] // 14:37 풀이 시작 #include using namespace std; int arr[2][2]={{0,1},{2,3}}; int func (int n, int r, int c){ if(n==1){ return arr[r][c]; } // 이전 단계에서 한 변의 길이 int prev = 1c; cout
백준 11729번 하노이 탑 이동순서 C++
백준 11729번 하노이 탑 이동순서 C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/11729 [입출력 예] 입력 출력 3 7 1 3 1 2 3 2 1 3 2 1 2 3 1 3 [소스코드] #include using namespace std; void func(int a, int b, int n){ if (n==1){ cout
백준 1629 곱셈 C++
백준 1629 곱셈 C++
2022.02.08[문제 링크] https://www.acmicpc.net/problem/1629 [입출력 예] 입력 출력 10 11 12 4 [소스코드] //시작시간 10:48 #include #define ll long long using namespace std; ll func (int a, int b, int c){ if (b==1){ return a % c; } if (b%2 ==0){ return func(a, b/2, c)*func(a,b/2,c)%c; } else { return func(a,b/2,c)*func(a,b/2,c)%c*a%c; } } int main(){ ios::sync_with_stdio(0); cin.tie(0); int a,b,c; cin>>a>>b>>c; cout
백준 1926 그림 C++
백준 1926 그림 C++
2022.02.06[문제 링크] https://www.acmicpc.net/problem/1926 [입출력 예] 입력 출력 6 5 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 4 9 [소스코드] //시작시간 19:05 #include using namespace std; int board[500][500]; int visited[500][500]; int n, m; int dx[4] = {0, 1, 0, -1}; int dy[4] = {1, 0, -1, 0}; int max_area; int cnt; void print_borad() { for (int i = 0; i m;..
백준 5430 AC C++ 풀이
백준 5430 AC C++ 풀이
2022.02.05[문제 링크] https://www.acmicpc.net/problem/5430 [입출력 예] 입력 출력 4 RDD 4 [1,2,3,4] DD 1 [42] RRD 6 [1,1,2,3,5,8] D 0 [] [2,1] error [1,2,3,5,8] error [소스코드] #include #define endl '\n' using namespace std; void push_DQ(string arr, deque &DQ) { string tmp = ""; for (int i = 0; i < arr.length(); i++) { if ('0'
BOJ 1021 회전하는 큐 C++
BOJ 1021 회전하는 큐 C++
2022.02.02[문제 링크] https://www.acmicpc.net/problem/1021 [입출력 예] 입력 출력 10 3 2 9 5 8 [소스코드 - 내 풀이] #include using namespace std; int main(){ //n,m입력받기 int n, m; cin>>n>>m; deque D; //덱에 숫자 채우기 for (int i=1; i>x; while(D.front()!=x){ D.push_back(D.front()); D.pop_front(); tmp++; } if (tmp>D.size()/2){ cnt+=(D.size()-tmp); } else{ cnt+=tmp; } D.pop_front(); } cout n >> m; deque DQ; for (int i = 1; i > t; int i..
백준 2164 카드2 c++
백준 2164 카드2 c++
2022.02.01[문제 링크] https://www.acmicpc.net/problem/2164 [입출력 예] 입력 출력 6 4 [소스코드] #include #include #include #define endl '\n' using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); queue Q; int n; cin>>n; // n 입력받음. for(int i=1; i
백준 10845 큐,큐2 c++
백준 10845 큐,큐2 c++
2022.02.01[문제 링크] https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [입출력 예] 입력 출력 15 ..
백준 6549 히스토그램에서 가장 큰 직사각형 풀이 c++
백준 6549 히스토그램에서 가장 큰 직사각형 풀이 c++
2022.01.25[문제 링크] https://www.acmicpc.net/problem/6549 [입출력 예] 입력 출력 7 2 1 4 5 1 3 3 4 1000 1000 1000 0 8 4000 [소스코드] // Authored by : haneulkimdev // Co-authored by : BaaaaaaaaaaarkingDog // http://boj.kr/d98aedfde0e444509de83f1a21c8ef7e #include using namespace std; #define X first #define Y second int main(void) { ios::sync_with_stdio(0); cin.tie(0); while (true) { int n; cin >> n; if (n == 0) break; s..
백준 3015 오아시스 재결합 c++
백준 3015 오아시스 재결합 c++
2022.01.25[문제 링크] https://www.acmicpc.net/problem/3015 [입출력 예] 입력 출력 7 2 3 1 2 2 5 1 10 [1차시도 - 실패] #include using namespace std; #define ll long long #define X first #define Y second ll a[500000]; int main(){ ios::sync_with_stdio(0); cin.tie(0); ll answer=0; int n; cin>>n; stack s; pairmax_pair ={(ll)INT_MAX +1,n}; s.push(max_pair); //배열에 대입. for (int i=0; i>a[i]; } //반복문으로 오큰수처럼 풀이 for (int i=n-1; i>=0;..
백준 17298 오큰수 c++
백준 17298 오큰수 c++
2022.01.13[문제 링크] https://www.acmicpc.net/problem/17298 [입출력 예] 입력 출력 4 3 5 2 7 4 9 5 4 8 5 7 7 -1 -1 8 8 -1 [소스코드] #include #define MAX_N 1000000 #define MAX_A 1000001 int a[MAX_N]; int ans[MAX_N]; using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); // n값 입력 int n; cin>>n; // 배열 입력 for(int i=0; i>a[i]; } // 최대값 대입 stack s; s.push(MAX_A); for (int i=n-1; i>=0;i--){ while(a[i]>=s.top()){ ..
백준 6918 옥상 정원 꾸미기 c++
백준 6918 옥상 정원 꾸미기 c++
2022.01.13[문제 링크] https://www.acmicpc.net/problem/6918 [입출력 예] 입력 출력 6 10 3 7 4 12 2 5 [1차 시도] #include #define MAX_N 80000 #define MAX_h 1000000001 #define X first #define Y second int a[MAX_N]; using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); int ans=0; // n값 입력 int n; cin>>n; // 배열 입력 for(int i=0; i>a[i]; } // 를 담는 스택 stack s; pair p ={n,MAX_h}; s.push(p); // 순회 for (int i=n-1;i>=0..
백준 1874 스택수열 c++
백준 1874 스택수열 c++
2022.01.08[문제 링크] https://www.acmicpc.net/problem/1874 [입출력 예] 입력 출력 8 4 3 6 8 7 5 2 1 + + + + - - + + - + + - - - - - [소스코드] #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); stack s; int n; int cur = 1; int target; string result; bool success=true; cin>>n; while(n--){ cin>>target; if(s.size()==0){ s.push(cur++); result+="+\n"; } if(s.size()!=0 && target>s.top()){ while(targe..
백준 2493 탑 c++
백준 2493 탑 c++
2022.01.08[문제 링크] https://www.acmicpc.net/problem/2493 [입출력 예] 입력 출력 5 6 9 5 7 4 0 0 2 2 4 [1차시도 - 시간초과 57%] #include #define MAX_N 500001 using namespace std; int a[MAX_N]; int ans[MAX_N]; int recent_max = -1; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n; cin>>n; for(int i=0; i>a[i]; if (recent_max>0 && a[i]>recent_max){ cout
백준 5397 키로거 c++
백준 5397 키로거 c++
2022.01.04[문제 링크] https://www.acmicpc.net/problem/5397 [입출력 예] 입력 출력 2 >n; while(n--){ string s; cin>>s; list L; auto cursor = L.end(); for (auto c:s){ if(c==''){ if (cursor!=L.end()){ cursor++; } } else if (c=='-'){ if (cursor!=L.begin()){ cursor--; cursor=L.erase(cursor); } } else { L.insert(cursor,c); } } for (auto c:L){ cout