본문 바로가기

Algorithm/📖Baekjoon138

#5622 다이얼 # 문제 # 입력 및 출력 # 풀이 그냥 반복문 쓰면 엄청 간단한 코드긴 한데 다른 사람 코드를 보다가 짧은 코드를 발견해서 작성해봤다 #include using namespace std; int main() { string dial; cin >> dial; int result = 0; result += dial.size(); for (int i = 0; i < dial.size(); i++) { char a = dial[i]; if (a == 'A' || a == 'B' || a == 'C') result += 2; else if (a == 'D' || a == 'E' || a == 'F') result += 3; else if (a == 'G' || a == 'H' || a == 'I') result.. 2022. 4. 24.
#1920 수 찾기 # 문제 # 입력 및 출력 # 풀이 처음에 완전 간단하다고 생각했음ㅋㅋㅋ 배열 크기를 100,001로 선언해놓고 인덱스에 맞게 숫자를 넣어서(4면 인덱스4번에 저장) 4번째줄에 입력받는 수들을 인덱스로 접근해서 있는지 확인하려고 했었다 말이 좀 어려운데 예제를 예로 들면 배열에 인덱스 1에 1, 인덱스 2에 2, 인덱스 3에 3 ... 이런식으로 저장해놓고 밑에서 입력받은 수 1, 3, 7, 9, 5를 배열[1], 배열[3], 배열[7], 배열[9], 배열[5] 이런 식으로 접근해서 값이 있는지 확인하는 식으로 코드를 짰는데 보니까 입력 받는 수의 개수가 100,000개인거고 수의 크기는 int형 범위크기라 배열이 int 범위만큼 필요했었던거다,, 그래서 채점하는데 컴파일 에러 발생,,ㅎ 그래서 밑에 알.. 2022. 4. 24.
#10845 큐 # 문제 # 입력 및 출력 # 풀이 전의 스택 문제와 똑같음 그냥 c++에 존재하는 queue헤더를 사용해서 풀었음 #include #include using namespace std; int main() { int n, num; cin >> n; queue q; for (int i = 0; i > cmd; if (cmd == "push") { cin >> num; q.push(num); } else if (cmd == "pop") { if (q.empty()) cout 2022. 4. 24.
#1260 DFS와 BFS # 문제 # 입력 및 출력 # 풀이 이 문제를 이틀 전인가 그때 봤는데 도저히 어떻게 풀어야 할지 감이 안잡혀서 그냥 버리고 넘어갔었다ㅋㅋㅋ 진짜 각잡고 해보자 해서 다시 풀어보는데 좀 복잡해져도 배열이랑 자료구조 좀만 섞어 쓰면 풀 수 있을 것 같았다 그래서 아래 블로그 이론을 참고해서 코드를 작성해봤다 1) DFS https://gmlwjd9405.github.io/2018/08/14/algorithm-dfs.html [알고리즘] 깊이 우선 탐색(DFS)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 2) BFS https://gmlwjd9405.github.io/2018/08/15/algorithm-bfs.. 2022. 4. 23.
#1978 소수 찾기 # 문제 # 입력 및 출력 # 풀이 소수를 찾는데 여기를 참고했음 https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4 소수 배열을 하나 만들어서 소수를 제외한 수는 모두 -1로 값을 변경해줌 이렇게 하면 소수만 배열에 -1이 아닌 숫자로 존재하고 소수가 아닌 수는 모두 -1이 됨 시간 복잡도를 줄이기 위해 소수 배열을 모두 조회하는 것이 아니라 입력받은 수가 소수 배열에 존재하는지 확인하기 위해 배열의 크기는 1001로 설정해서 인덱스 0번은 사용하지 않음(인덱스 1~1000 사용) #include using namespace std; int num[100.. 2022. 4. 23.
#9012 괄호 # 문제 # 입력 및 출력 # 풀이 스택을 사용해서 간단하게 풀 수 있음 (이 입력되면 push해서 넣어주고 )이 입력되면 pop해서 삭제해주면 됨 괄호의 짝이 안맞으면 NO를 출력하고 짝이 맞는 경우엔 YES 출력하도록 작성 * 스택이 빈 상태에서 pop하지 않도록 예외처리를 해줄것 * 스택을 clear하기 위해서 while(!s.empty()) s.pop(); 코드를 사용해도 되지만 난 그냥 반복문 돌 때마다 스택을 새로 선언해서 사용했음(시간 복잡도 문제) #include #include using namespace std; int main() { int n; cin >> n; for (int i = 0; i < n; i++) { stack s; string ps; int isVPS = 1; cin.. 2022. 4. 22.