728x90

분류 전체보기 57

[C언어/C++] 소수점 개수(자리)지정 방법 정리

소수점 개수(자리, 범위) 지정 방법 정리 코딩을 하거나 백준 문제를 풀거나 하다 보면 소수(실수)를 출력하는 경우가 생깁니다. 특히 소수점의 개수를 지정해줘야 하는 경우가 많이 생기는데 오늘은 그 방법을 한번 알아보겠습니다. 참고로 C언어, C++ 두 개 모두 방법을 알아볼 예정입니다. 가장 먼저 C언어에서 알아보겠습니다. C언어 C언어에서는 출력 시 printf를 주로 사용하는데 이곳에서 바로 지정해 줄 수 있습니다. printf, scanf는 입력, 출력 시 자료형을 직접 지정해 줘서 번거로운데 이 단점이 소수를 출력해 줄 때에는 장점이 됩니다. 아래 코드를 살펴봅시다. #include int main(void) { double a=123456.123456789; printf("%.9lf", a);..

[C++] 1차원, 2차원, 3차원 배열 초기화 정리(fill, fill_n,memset,전역,지역)

1차원, 2차원, 3차원 배열 초기화 하기 알고리즘 문제를 풀 때 배열을 특정 원소들로 채워 넣는 경우가 있는데요, 오늘은 C언어와 C++에서 배열 초기화 하는 여러 가지 방법을 알려드리겠습니다. fill, fill_n, memset등에 대해 소개하겠습니다. 일단 전역변수와 지역변수에 대해 알아봅시다. 함수안에 선언된 변수를 '지역변수', 함수 밖에 선언된 변수를 '전역변수'라고 하는데 어디에 선언되냐에 따라 초기화 여부가 달라집니다. 배열도 마찬가지입니다. 전역변수 배열이 함수밖에 선언된다면 배열 안의 모든 값은 0으로 자동 초기화 됩니다. #include using namespace std; int a[5]; int main() { for(int i=0; i

아스키코드(ASCII Code) 정리, 활용

아스키코드 정리 오늘은 아스키 코드에 대하여 알아보겠습니다. 아스키코드는 미국 국제 표준 협회(ANSI)에서 1963년 표준화한 정보교환 부호체계입니다. 아스키코드는 7비트로 128(2^7) 개의 부호가 지정되어 있습니다. 1바이트는 8비트인데 7비트만 쓰이는 이유는 나머지 1비트는 패리티 비트라고 오류 검출에 쓰이기 때문입니다. 아래는 아스키코드 표입니다. 대문자 A는 65 소문자 a는 97입니다. 이 둘은 기억해 둡시다. 아스키코드를 활용하면 문자와 숫자 변환이 가능해집니다. 숫자를 이용해 문자 출력이 가능해지며 문자를 이용해 숫자 출력이 가능해집니다. 아래 예시를 보겠습니다. #include using namespace std; int main() { cout

[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]) 이 두..

백준 플레 5 달성!

백준 플레티넘 5를 달성하였다! 사실 플레 5는 찍은 지 꽤 됐는데 이제 자랑한다. 골드 5까지는 빨리 찍었는데 플레 5는 1년이 더 걸렸다. 골드 2? 까지는 가파르고 빠르게 올렸었는데 그쯤부터 레이팅 오르는 속도가 많이 느려졌었다. 실버문제를 풀어도 점수를 짜게 줘서 골드를 풀자니 그 당시 한 문제 푸는데 시간이 오래 걸리고..... 대충 클래스5를 따고 상위 100문제 평균을 골드 4 정도 맞추면 플레를 찍는 거 같다. 나는 상위 100문제를 골드 5 이상으로 채웠다. 실버가 안 보여서 간지가 나긴 한다. 그런데 이제 레이팅을 올리려면 골드 4 이상의 문제를 풀어야 하기 때문에 점수 올리기가 매우 힘들다. 골드 상위 문제들은 푸는데 시간이 오래 걸리고 플레이상의 문제들은 슬슬 벽이 느껴지기 시작했다..

자유 2024.02.08
728x90