알고리즘문제해결

    백준 5026 박사 과정 문자열 처리

    백준 5026 박사 과정 문자열 처리

    https://www.acmicpc.net/problem/5026박사과정 5026 개행문자와 1의 자리숫자 이상의 숫자일때 처리해야 하는 부분과strcmp로 글자를 비해 숫자가 아닐때 다른 값을 출력해줘야함 코드 보기 #include #include using namespace std; int main(){ int n=0,sum=0,temp=0; char ar[20]; cin >> n; cin.ignore(); for(int i=0; i

    백준 11024번 더하기 4

    백준 11024번 더하기 4

    https://www.acmicpc.net/problem/11024 더하기 4 에서 https://www.acmicpc.net/problem/11023더하기 3 처럼 EOF 처리만 해주면 '\n' 개행 문자 때문에 테스트 케이스 만큼 반복문을 처리하지 못하고 첫 케이스에서 문자를 다먹어 버린다. 소스보기#include using namespace std;int main(){ int sum=0,t=0,temp=0; char ar[101]; cin >> t; //테스트 케이스 입력 cin.ignore(); //t 입력하면서 버퍼에 입력된 개행문자 제거 while(t--){ cin.getline(ar,100,'\n'); for(int i=0; i

    백준 2309 일곱난쟁이 브루트 포스

    9명 중에 7명의 키의 합이 100이 되는 일곱난쟁이를 찾아내는 문제. 처음에 DFS로 다 찾으려고 했는데, 왜 구현을 못하지... 결국 다른 사람의 푼 문제를 참고하여 풀었음. 일곱 난쟁이 성공 스페셜 저지문제집 시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB53732968235556.407%문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 ..

    10799 쇠막대기 백준 알고리즘 문제 스택

    Stack 괄호 문제를 풀고나서 다른 스택문제를 찾다가 괜찮은것 같은 문제를 발견했다. 바로 ! 10799 쇠막대기 https://www.acmicpc.net/problem/10799괄호를 스택에 넣으면서 열고 닫히는 괄호를 확인하여 쪼개지는 쇠막대기의 갯수를 세어 출력한다.쇠막대기 성공문제집 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB31871735134254.398%문제여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다.쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히..

    1063 king 킹 시뮬레이션 백준 알고리즘 !

    시뮬레이션 문제풀때 조건이 많아지면 항상 실수 한다... 삼성 소프트웨어 직군 역량 평가에서도 그랬지...공통적으로 적용되는 조건을 정하고 그 조건 부터 수행하는게 정답인것 같다. 킹 문제가 쉬운 부분에 속할태지만... 처음 모든 조건을 if문으로 해결하려고 했을때 어디서 에러가, 오답이 났는지도 모르겠고 코드만 200줄이 되버려서 ....실패했다. 다른 분의 코드를 참고하여 킹을 옮길 좌표를 미리 구하고 킹이 떨어지면 탈출!아니면 킹과 돌의 위치를 파악하여 돌도 같이 옮기고 돌이 떨어지면 탈출과 함께 킹의 위치를 옮겼던 좌표를 되돌린다. 코드가 1/4로 줄었다! 답도 통과 !!! 물론 if 문으로 가지치기해서 잘 적었으면 답이 통과 됬겠지만.... 예외 찾다가 머리 터질것 같아서 그냥 새로 짰다. 킹 ..

    Counting Sort 계수 정렬 10989 백준 수정렬하기 3

    Counting Sort 계수 정렬 ! 시간 복잡도 O(n + k) 만큼 걸리고 공간 복잡도 O(k) 만큼 걸리는 정렬 알고리즘Radix Sort 기수 정렬보다 공간 복잡도가 적게 드는 장점이 있는 정렬 알고리즘이다. Radix Sort 에서는 Linked list 와 Dynamic Array가 필요하기 때문에 계수 정렬에 비해 공간이 절약된다. 기수 정렬에서 정렬될 Index를 계산 하는데 앞서 Counting number 를 누적해 나간다. 누적하기 때문에 다른 배열을 사용하지 않아도 되는 장점이 있다. Unsorted Array : 7, 2, 3, 5Stored Array : 0, 0, 1, 1, 0, 1, 0, 1 1. 정렬되지 않은 배열의 숫자 범위만큼 Stored Array 를 할당하고 숫자의..

    1408 24 백준 알고리즘 온라인저지

    처음에 if 문으로 클때 같을때 작을때 나눠서 시 분 초를 계산하려고 했다.총 6갈래가 나와서 어려울 것 같다고 판단했다. 초를 계산하고 1분이 깍아지면 분에 영향이 미치도록 했다. 시간도 같은 방식으로 시 분 초 총 if else 문 3개로 해결했다. https://www.acmicpc.net/problem/1408 24 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB172873166545.146%문제도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는다. 정확하게 24시간이 되는 순간이 아니면 잡지 않는 CTU 특수요원이다...

    11653 소인수 분해 문제 백준 알고리즘

    https://www.acmicpc.net/problem/11653소인수분해 성공 예제 입력 복사72 예제 출력 복사2 2 2 3 3 소인수 분해를 할때 n의 root(n)까지만 해보면 소수인지를 알 수 있는 수학식? 이 떠올랐다.. 거창할건 없고그냥 2로 나눠질때까지 계속 나눠주고, 안나눠지면 3으로 해보고 +1, +1 이런식으로 n이 1될까지 반복 끗나눠지면 값을 나누고 반복문 돌리고 n 이 1일 될때까지 ! #include using namespace std; int main(){ long n = 0; cin >> n; int i = 2; while(true){ if(n==1) break; if((n%i) == 0){ cout