본문 바로가기

개발 노트/백준, 프로그래머스 풀이165

[백준 11729/c++] 집합 시간초과가 되지 않도록 비트연산을 사용가능한지, memset 을 사용 가능한지 ios_base::sync_with_stdio(false); 등등 여러 방법을 통해 빠른 연산 능력을 구현가능한지를 묻는 문제이다 논리야 너무 간단했지만 처음 제출했던 코드에서 왜 틀렸는지 모르겠어서 5시간 넘게 붙잡고 맞왜틀! 거리고 조금씩 고쳐서 제출했더니 세상에... 내 제출로 인한 틀렸습니다만 한페이지다 민망 하하... 처음부터 전체적으로 다시 고쳐서 해결하였다 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acm.. 2022. 7. 6.
[백준 1018/c++] 체스판 다시 칠하기 이중 벡터를 사용하는 문제이다 vector ar(n, vector(m)); // (m) 대신 (m, 5)를 넣으면 내부 값을 5로 초기화 한다 위의 코드는 아래에서 쓴 것인데, 벡터안에 벡터를 넣었고, ar 이라는 벡터명이며 ar[n][m] 의 크기를 갖는 이중 벡터를 선언, 데이터를 입력하여 문제에 사용하였다 8x8 인덱스 내에서 돌때 가로 인덱스+세로 인덱스의 합이 짝수, 홀수일때를 각각 이용해서 비교하였고 bw wb 의 경우를 따로 두 번 돌지 않고 한번의 확인으로 b로 바꿀때 w로 바꿀때를 모두 체크해서 두 경우를 함께 카운트 하여 개선하였다 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 .. 2022. 7. 5.
[백준 1764/c++] 듣보잡 입력에서 말이 헷갈릴수 있지만 n+m개의 입력을 받고 오름차순 정렬 후, 인접 요소를 비교해 중복을 제거하여 출력하라는 문제였다 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net #include using namespace std; int main(){ ios_base::sync_with_stdio(false); int n, m, t; int cnt=0; string s; vector v, ans; cin >> n >> m; for(int i=.. 2022. 7. 5.
[백준 11729/c++] 하노이의 탑 이동 순서 재귀문제의 가장 유명한 하노이의 탑 문제이다 하노이의 탑 문제의 핵심은 가장 아래의 원판부터 하나씩 옮겨서 이동해야 한다는 점이다 1. 그러기 위해서는 원판의 총 개수 n 개에서 가장 아래 하나를 뺀 n-1개를 임시위치에 모두 옮겨야 한다 2. 원래 위치에서 가장 아래에 있는 원판을 목표 위치로 이동시킨다 3. 임시 위치에 쌓인 n-1개의 원판을 목표 위치로 이동시킨다 4. 이걸 원판 수 n만큼 반복한다 즉, 위의 알고리즘을 가진다 이동을 출력으로 보여줘야 하므로 원판수 n외에도 원래위치, 임시위치, 목표위치 를 인자로 갖는 함수를 만든다 void hanoi(int n인자개수, string from원래위치, string to목표위치, string res임시위치){ // 순서는 정하기 나름 hanoi(n-.. 2022. 7. 3.