보글보글 개발일지
반응형
[백준/7983][C++] 내일 할거야
알고리즘 2023. 10. 20. 12:49

문제 https://www.acmicpc.net/problem/7983 풀이 그리디 문제.. 처음엔 배열을 만들어서 배열에 해당 날짜에 체크를 하고.. 체크가 안된부분이 나온 처음 인덱스로 답을 정하려했는데 인덱스 오류가 났다ㅠㅠ 그래서 풀이를..보고... 풀어보았다. time>=end 마감일이 시작일보다 이른경우다. 쉽게 말해 이미 마감일에 다른일을 했으면 지금까지 저장된 time에서 걸리는 시간을 빼준 값을 time에 갱신해야한다.. 쉽지않네 코드 #include using namespace std; int n; vector v; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; int m = n; while (m--) { in..

[백준/9694][C++] 무엇을 아느냐가 아니라 누구를 아느냐가 문제다
알고리즘 2023. 10. 20. 11:08

문제 https://www.acmicpc.net/problem/9694 9694번: 무엇을 아느냐가 아니라 누구를 아느냐가 문제다 맨위 첫 번째 줄에 T(1 d[cur.second]) continue; 이 한줄 때문에 계속 25%에서 틀렸다고 했다.. cur.first!=d[cur.second]가 아니라 >로 비교해야하나보다.. 코드 #include using namespace std; int T, n, m; int pre[21]; int d[21]; vector board[21]; const int INF = 1e9 + 10; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0); cin >> T; for (int tc = 1; tc > n >> m; ..

article thumbnail
[백준/17129][C++] 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유
알고리즘 2023. 9. 14. 19:17

문제 https://www.acmicpc.net/problem/17129 17129번: 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유 첫째 줄에 정보섬 2층의 크기 n과 m이 주어진다. (1 ≤ n,m ≤ 3000, 4 ≤ n×m ≤ 9×106) 이후 n행 m열에 걸쳐 0, 1, 2, 3, 4, 5로만 구성된 Ai,j가 주어진다. Ai,j와 Ai,j+1사이에 공백은 주어지지 않는다. 2, www.acmicpc.net 풀이 처음에는 모든 거리를 다 구한뒤, 3,4,5까지의 거리가 모두 -1인 경우만 NIE를 출력했고 이외의 경우에는 -1을 제외하고 최솟값을 구해주었다.. 근데 어차피 BFS는 근처에 있는거 먼저가니까 BFS하는 와중에 3,4,5를 만나면 믿음을 가지고 chk 변수를 두어보았더니 성공했다. ..

article thumbnail
[백준/1260][C++] DFS와BFS
알고리즘 2022. 11. 2. 13:00

BFS와, DFS의 가장 기본적인 문제인듯 싶다. dfs는 재귀함수로 구현하였고, bfs는 큐를 사용하였다. 먼저 DFS의 경우, 그래프에서 노드간의 연결을 위해 벡터를 사용하였다. 그냥 이차원 배열을 사용해도 좋을 듯 하다. 입력 받으며 벡터에 저장할 때, 해당 그래프가 양방향임을 주의하자 "단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문" 이라는 문구로 인해 sort가 필수적이다. 그러나 2차원 배열을 통해 1번 노드부터 m번 노드까지 방문하면서 1. 방문한 적이 있는지, 2. x번쨰와 i번째가 연결되어 있는지 확인하는 방식을 사용해도 좋을 듯하다. 다음으로 BFS의 경우, 우선 시작 노드에 방문 표시를 한 뒤, 큐에 푸시한다. 그리고 큐가 빌때 까지 무한 루프 내부..

article thumbnail
[백준/1012번][C++] 유기농 배추
알고리즘 2021. 2. 4. 01:41

www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net BFS를 통해 문제를 해결했다. 주의할 점 2가지가 있는데 1. 가로, 세로 인덱스가 반대로 되어 있다. 2. 각 테스트 케이스마다 보드를 초기화 해 주어야 한다. 나는 1, 2번으로 인해 시간을 굉장히 오래 잡아먹었다. 다른 요소들은 그냥 보통의 BFS에 count를 더한 것이다. #include #include using namespace std; #define X first #define Y second int n,m..

article thumbnail
[백준/10804번][C++] 카드 역배치
알고리즘 2021. 2. 3. 20:37

www.acmicpc.net/problem/10804 10804번: 카드 역배치 1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다. www.acmicpc.net 간단한 배열문제다. index를 편하게 하기 위해서 i의 범위를 1부터 20으로 정했다. 우선 for문으로 각 칸에 맞게 1~20을 채운다. count의 의미는 바꿔야하는 수의 개수이다. [9,13]의 경우 9,10,11,12,13 으로 5개이다. 9,10만 뒤에 있는 수로 바꿔주면 된다. 이후 인덱스만 신경써서 출력해주면 된다. #include using namespace std; int arr[22]; int main(void){ ios_b..

article thumbnail
[백준/1406번][C++] 에디터
알고리즘 2021. 1. 25. 16:56

www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문자열을 list에 저장한다. auto형으로 cursor변수를 선언해 커서의 위치를 맨 뒤로 보낸다. 명령어를 입력받아 각 명령어에 따라 명령을 수행한다. L: 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨) D: 커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시됨) B:커서 왼쪽에 있는 문자를 삭제함 (커서가 문장의 맨 앞이면 무시됨) 삭제로 인해 커서는 한 칸 왼쪽으로 이동한 것처..

article thumbnail
[백준/11328번][C++] Strfry
알고리즘 2021. 1. 25. 16:46

www.acmicpc.net/problem/11328 11328번: Strfry C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래 www.acmicpc.net string을 입력 받아서 begin~end까지 정렬해준다! 두 문자열이 같다면? Possible 다르다면 Impossible 출력 #include #include #include using namespace std; int main(void) { ios_base::sync_with_stdio; cin.tie(0); int num; cin>>num; int arr[1000]; for(int ..

article thumbnail
[백준/1919번][C++] 에너그램 만들기
알고리즘 2021. 1. 25. 16:40

www.acmicpc.net/problem/1919 1919번: 애너그램 만들기 두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs www.acmicpc.net 문자열을 입력받아 알파벳 순서대로 각 배열에 카운트 해준다. 알파벳이 총 26자니까 배열 크기를 26으로 선언했고 카운트 하기 위해 0으로 초기화 해주었다. 만약 배열을 순회하며 개수가 같지 않은 알파벳이 나온다? 그럼 그 차이만큼 카운트 증가! 근데 뺀 값이 음수가 될 수도 있으니까 절대값을 해준다. abs함수를 이용했다. #include #include #include using n..

article thumbnail
[백준/10171번][C++] 고양이
알고리즘 2021. 1. 25. 16:23

www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 출력만 잘해주는 되는 문제이다. 다만 큰 따옴표 안에 역슬래시나 작은 따옴표를 사용하는 경우 \를 추가해야한다. 즉, \(역슬래시)를 사용하기 위해서는 \\과 같이 역슬래시를 두 번 입력해야한다! 작은따옴표 사용하려면 앞에 \를 붙여야 한다! 코드는 다음과 같다. #include using namespace std; int main(){ cout

반응형