728x90

코딩 44

[C/C++] 백준 1152 : 단어의 개수 풀이

백준 1152 : 단어의 개수(C, C++) 문제 링크 : 1152번: 단어의 개수 (acmicpc.net) 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net C언어와 C++ 두 가지 모두 해설이 준비되어 있습니다. 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1..

백준 Solved.ac 연동하기

Solved.ac 연동하기 요즘 백준 알고리즘을 많이 이용하는데 이때 필수로 해야 할 것이 있다. 바로 솔브닥(solved.ac) 연동이다. solved.ac 연동을 하면 문제의 티어를 볼 수 있다. solved.ac는 백준 문제들의 난이도를 매기기 위해 2020년 서강대 컴퓨터공학부 학생 박수현에 의해 만들어졌다. 문제 난이도는 유저들이 문제를 풀고 난 후 난이도 평가를 통해 문제 난이도가 정해진다. 바로 solved.ac 연동 방법을 알아보자. 처음에 백준 알고리즘에 로그인한 뒤 설정에서 solved.ac 부분을 클릭하고 사용하기를 누른다. 그리고 로그인을 한 뒤 연동하면 된다. 추가로 보기 항복에서 solved.ac티어를 '보기', solved.ac 티어 이름을 '보기'로 바꾼다. 이래야 문제옆에 ..

[C/C++] 백준 2884 : 알람 시계 풀이

백준 2884 : 알림 시계(C, C++) 문제 링크 : 2884번: 알람 시계 (acmicpc.net) 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해 보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다...

[백준/C++] 백준 시간초과 해결법, 원인 정리

백준(C++) 시간초과 해결법 백준 알고리즘 문제를 풀다 보면 제출 시 시간초과가 뜨는 경우가 있다. 이 경우 코드 몇 개만 추가하거나 수정하거나 해서 시간초과를 해결할 수 있다. 아니면 문제 해결에 사용한 알고리즘의 시간복잡도를 고려해 볼 수도 있다. 오늘 시간초과 원인과 해결법에 대해서 알아보자. 1. ios::sync_with_stdio(false) 추가 C++에서 입력은 크게 printf와 cout 출력은 scanf와 cin이 있다. 여기서 cout와 cin은 printf, scanf에 비해 속도가 느리다. 그 이유는 cout와 cin는 실행 시 값의 자료형을 검사하기 때문이다. 속도가 좀 더 느리나 안정적이다. ios::sync_with_stdio(false); ios::sync_with_std..

C++ STL pair 클래스 정리(vector, sort,백준,응용)

C++ STL pair 클래스 총정리(vector, sort) C++ STL 중 라이브러리에 pair클래스가 있다. 오늘은 이 pair클래스에 대하여 알아보겠다. 추가로 알고리즘 문제를 풀 때 어떻게 응용되는지도 보자. pair를 사용하면 자료 두 개를 한 가지 자료에 저장할 수 있다. pair는 2차원 좌표 저장등 많은 곳에서 유용하게 쓰이므로 꼭 익혀두자. 일단 라이브러리에 있으니 추가해 준다. 이제 사용해 보자 생성 pair p; type1, type2 두 개의 데이터를 저장하는 pair p를 만든다. 예를 들어 좌표를 저장하려면 y좌표, x좌표 두 개를 저장할 int형 공간이 필요하므로 pair p;와 같이 선언해 주면 된다. int형뿐만 아니라 string, char, float 등을 자유롭게 ..

C++ STL sort() 정리(2차원배열 정렬, 오름차순 정렬, 내림차순 정렬)

C++ STL sort() 총정리 오늘은 C++ STL의 헤더가 속한 sort() 함수에 대해 정리해 보겠습니다. 2차원배열에서의 정렬, 오름차순, 내림차순등에 대하여 설명하겠습니다. sort() 함수는 정렬을 해주는 함수로 간편하고 빠르기에 매우 많이 사용되며 단순 정렬문제부터 그리디 알고리즘등 광범위하게 활용되기 때문에 필히 익혀야 합니다. 일단 라이브러리를 추가합니다. 이제 사용을 해봅시다. 사용 sort( 시작 주소, 마지막 주소+1, 정렬기준(생략가능) ) 위처럼 사용하면 됩니다. 정렬기준은 생략 가능하며 기본값은 오름차순입니다. 정렬기준은 조금 있다가 아래에서 다루겠습니다. 예를 들어 int a[10]을 오름차순으로 정렬할 경우 sort(a,a+10) sort(&a[0], &a[10]) 이 두..

백준 9625 : BABBA(C,C++)

문제 링크 : https://www.acmicpc.net/problem/9625 9625번: BABBA 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했 www.acmicpc.net 문제 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했다. 한 번 더 누르니 BA로 바뀌고, 그 다음에는 BAB, 그리고 BABBA로 바뀌었다. 상근이는 화면의 모든 B는 BA로 바뀌고, A는 B로 바뀐다는 사실을 알게되었다. 버튼을 K번 눌렀을 ..

백준 9655: 돌 게임(C,C++)

문제 링크 : 9655번: 돌 게임 (acmicpc.net) 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000) 출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. 해설 구하는 방법은 크게 두가지가 있습니다. 1. 직접..

백준 14500:테트로미노(C, C++)

문제 링크 : https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인..

백준 1676: 팩토리얼 0의 개수(C++)

문제 링크 : https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 첫째 줄에 구한 0의 개수를 출력한다. 해설 N!이면 1×2×3×4.....N-1×N 인데 이 결괏값에서 뒤에 0이 몇 개나 나오는지 구해야 한다. 예를 들어 5!이면 1×2×3×4×5=120으로 답은 1이고 10! 은 3628800으로 답은 2이다. 일단 가장 쉽게 생각해 볼 수 있는 것은 10을 곱할 ..

728x90