코테 준비-문제풀기 37

프로그래머스-정렬문제 k번째 수

연습을 안했더니 벡터 쓰는게 헷갈려서 은근 헤맸던 문제.. 진짜 이상한데서 오류나서 이건 기록을 해야할 것 같다 코드설명은 밑으로 ```기록용 테스트할때 오류가 났던건데 이중배열 벡터 선언하려고 했더니 저 >에서 오류가 났다.. //저 띄어쓰기... vector commands(3,vector(3,0)); ``` 코드&함수 설명 c++알고리즘이 참 감사했던 문제들 우선 이 코드에서는 3가지가 중요했다. 1. else if(j==1)일때 commands[i][j]에서 -1을 안해준다. => 배열이니까 1더 크게! *-1을 해준이유는 여기서는 n번째 수로 값을 주지만 우리는 배열을 계산해야해서 -1을 해줬다. 2. copy함수 사용법 사이즈 지정은 copy.resize()로 한다. copy(array.beg..

백준 7785

https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구하는 프로그램을 작성 www.acmicpc.net 값 두개를 비교해야 하고 둘다 string값으로 하고 싶어서 우선 map을 사용했다. 먼저 처음에 사전역순으로 출력하라는 걸 못..

2193 Dynamic -이친수 구하기

3 우선 첫글자는 무조건 1이고 두번째는 2이상일때는 무조건 0 세번째부터가 문제 3이 들어오면 100에서 시작해서 101 110 ㅇ이런식으로 갈때 조건을 검사해야하는듯.. //이런줄 알았음 조건을 다 계산해야 하는 줄 알았는데 역시 내가 점화식을 못세운탓.. 되게 간단하게 풀 수 있는 문제였다.. 우선 경우의 수를 예시로 쫌 보자 3자리의 경우 100 101 4자리의 경우 1000 1001 1010 5자리의 경우 10000 10001 10010 10100 10101 이게 다이나믹인걸 아니까 그 전과 어떤 관계가 있는지 잘봐야함 다이나믹인지 모를때는 뭐..알아서 알아내야지 큼 전과의 관계를 보면 n자리의 경우 n-1자리에서 마지막이 0으로 끝나면 뒤에 0또는 1이 붙는게 가능하고 마지막이 1로 끝나면 0..

1260 DFS BFS

벡터를 사용해 인접리스트를 해볼까 했지만 나중에 비교하거나 할때 인접행렬이 편할 것 같아서 인접행렬로 풀어보겠음 밑에는 C++ 2차원배열 동적할당 하는 방법 알고리즘보다 배열때문에 힘들ㅇㅓㅆ음 이지윤이 동적할당하는거 도와줘서 어찌어찌 함 #include #include #include #include using namespace std; int **arr; int *visit; void dfs(int start, int size_arr_num, bool flag) { stack st; visit = new int[size_arr_num]; memset(visit, 0, sizeof(int)*(size_arr_num)); st.push(start); visit[start] = 1; cout > v2; ar..

백준 dynamic programming 7579 번

혹시 누군가 백준 알고리즘을 풀다 이것을 보게된다면 다른 사람의 블로그를 봐주세요.. 완전한 스터디 목적이므로 쫌 조잡한 부분이 많습니다 중간중간 계속 다른곳으로 새기 때문에 깔끔하게 풀이를 보고싶은분은 다른 블로그를 참고하길 *중간에 헤맨것 까지 다 나와있으므로 그냥 따라해서는 안됩니다.. 뻘짓 포함 우선 c++로 split하는 방법 ->사실 이게 필요 없었음..그래도 언젠가는 도움될 자료니까 나는 역시 자바가 편하긴하다..자바는 split함수 하나면 되는데.. string 배열 선언후, 배열로 입력받고 처리 split함수 직접 구현 (공백 단위로 문자 잘라서 vector에 넣음) std::istream_iterator(iss) 사용 우선 이렇게 있다고 함 그래도 c++쓰는거니까 라이브러리를 사용해 보..

백준 다이나믹 9095번

우선 c++ 로 해서 배열에 변수로 크기를 지정하는게 안된다 원래는 처음에 Testcase의 갯수를 받고 그만큼 입력을 받은후 나중에 출력해주려고 했었음 ->그래서 정답 배열을 따로 만들어 testcase의 갯수만큼 크기를 지정해 나중에 출력해주려 했으나 그건 자바에서 하는걸로..c는 되나.. =>동적할당 사용해도 되긴함 ex)cin>>test__num; int *num=new int[test_num]; 나중에 delete []num; //우선은 형식을 그냥 입력하자마자 출력하는 걸로 #include using std::cout; using std::endl; using std::cin; int main(void) { int test_num = 0; int i; int num; cin >> test_nu..