전체 글

[C] 입출력 형식과 서식 지정자
·
Language/C & C++
입출력 형식 C 언어에서는 printf, scanf 등 다양한 함수에서 변수를 입출력에 사용하기 위해 서식 지정자와 플래그 등을 조합해서 사용한다. 예를 들어 a 라는 변수에 숫자를 입력받고, 입력된 숫자를 출력하기 위해서는 아래와 같은 코드를 사용할 수 있다.int a;scanf("%d", &a);printf("%d", a);위 코드에서 %d 에 해당하는 것이 입출력 형식인데, 여기서는 간단하게 서식 지정자만 사용되었다.간단하게 서식 지정자만으로도 사용할 수 있지만, 플래그, 폭 등을 지정해서 사용해야 될수도 있다. 예를 들어서 변수를 16 진수로 출력하거나, 폭을 지정하는 등 원하는 형식으로 출력하려 한다면 서식 지정자 외 플래그 등을 사용해야 한다.입출력 형식은 아래와 같다.%[플래그][폭][.정밀..
[C] 연산자 우선순위
·
Language/C & C++
연산자 연산자는 데이터를 처리하고 조작하는 데에 사용되는 기호나 키워드를 말한다.연산자와 피연산자로 구성하는 수식은 항상 계산된 값을 반환하는데, 이 반환값을 계산하는 것이 연산자이다.여러 개의 연산자가 있는 수식이 있을 때 어떤 연산자를 먼저 적용하여 계산하느냐에 따라 반환값이 달라질 수 있기 때문에 연산자들의 우선순위는 중요할 수밖에 없다. 수학에서 사칙연산을 계산할 때 곱하기와 나누기를 더하기와 빼기보다 먼저 계산하기로 정해놓은 것과 같다.단 보통은 괄호 () 를 사용하여 명시적으로 우선순위를 표현하는 것이 좋기 때문에 우선순위 자체를 암기하기 위해 노력할 필요는 없는 것 같다. 연산자 우선순위 연산자연산 유형결합 규칙 (방향)()[]->.함수 호출배열 인덱스포인터를 통한 멤버 접근멤버 접근→++-..
[Baekjoon 9493] 길면 기차, 기차는 빨라, 빠른 것은 비행기 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/9493문제 거리와 기차의 속도, 비행기의 속도가 주어졌을 때 얼마나 비행기가 빠르게 도착하는지 구하는 문제이다. 풀이 주어지는 속도는 시속인데 마지막 정답을 출력할 때는 초까지 나타내야 하기 때문에 속도를 초속으로 바꿔준다.시간은 거리 나누기 속도이므로 비행기와 열차의 시간 차이는 아래와 같이 계산할 수 있다.$$ \frac{distance}{train} - \frac{distance}{air} = time $$$$ \frac{distance(air - train)}{air \times train} = time $$계산된 시간은 비행기와 열차의 시간 차를 초로 나타낸 것인데 이걸 시, 분, 초로 계산해서 출력하면 된다.출력 형식은 분과 초는 두 ..
[Baekjoon 5698] Tautogram | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/5698문제 문장의 모든 단어가 같은 글자로 시작하면 Tautogram 이라고 한다.주어진 문장이 Tautogram 인지 판별하는 문제이다. 풀이 map 과 split 을 이용해서 단어들을 끊어주고, 각 단어들이 같은 글자로 시작하는지 확인하면 되는 간단한 문제이다. 주의해야 할 것은 주어지는 문장은 대소문자가 구분되어 있지만 단어들을 검사할 때는 대소문자 구분없이 검사해야 한다. 따라서 입력받을 때 upper 나 lower 을 통해 문장 전체를 대문자나 소문자로 변환해주는 것이 좋다.단어들을 검사할 때는 단어를 [0] 으로 인덱싱하여 첫 글자와 비교해도 좋지만, startswith 를 통해서 비교하는 것이 명확하게 시작점을 비교할 수 있기 때문에..
[Baekjoon 5692] 팩토리얼 진법 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/5692문제 주어진 수가 팩토리얼 진법으로 표현된 수일 때 이를 10 진법으로 바꿔주는 문제이다.10 진법은 $ i $ 번째 자리의 수가 $ a $ 일 때 이를 $ a \times 10^i $ 로 본다면 팩토리얼 진법에서는 $ a \times i! $ 로 본다고 한다. 풀이 그대로 따라서 변환해주면 된다.주어진 수를 각 자리와 값으로 나눠주고, 위 팩토리얼 진법을 통해 계산하면 된다.첫 번째 자리부터 계산하는 것이 편하므로 주어진 수를 문자열로 입력받아 반전시켜주고, enumerate를 통해 index와 값을 가져와준다. 이때 index+1은 자리이다.가져온 값과 index+1의 팩토리얼을 곱한 것들을 모두 더해주면 10 진법으로 표현된 수를 계산..
[C] 기본 자료형 크기와 범위
·
Language/C & C++
자료형 C 언어에서 자료형은 데이터의 종류를 의미한다. 변수나 상수 등의 데이터는 이 자료형에 따라 정의되기 때문에, 자료형의 성질을 이해해야 각 변수나 상수의 특성을 정확히 파악하고 적절한 자료형을 사용할 수 있다.자료형은 크게 기본 자료형과 사용자 정의 자료형으로 나뉜다. 기본 자료형은 다시 정수형, 부동소수점형(실수형), 문자형으로 나뉘고, 사용자 정의 자료형은 구조체, 공용체, 열거형으로 나뉜다.사용자 정의 자료형은 기본 자료형을 기반으로 만들어지기 때문에, 기본 자료형에 대한 이해가 있어야 사용자 정의 자료형도 효과적으로 다룰 수 있다. 예를 들어, 구조체는 여러 가지 자료형을 하나로 묶은 자료형인데 이때 구조체 내부에서 사용되는 자료형들은 기본 자료형이다. 물론 구조체나 공용체 내부에 다른 구..
[Baekjoon 28432] 끝말잇기 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/28432문제 끝말잇기를 한 단어들이 주어지고, 그 중 ? 에 해당하는 단어를 찾는 문제이다.후보군 중에서 끝말잇기 조건인 앞 단어의 가장 뒷 글자를 첫 글자로 가지면서, 뒷 단어의 가장 앞 글자를 마지막 글자로 가지는 단어를 찾아야 한다.단 끝말잇기에 사용된 단어는 ? 가 될 수 없다. 풀이 조건을 만족하기 위해 ? 가 등장하는 위치를 찾고 그 앞 단어의 가장 뒷 글자와 그 뒷 단어의 가장 앞 글자를 알아낸다. 단 ? 가 가장 앞에 주어지거나 가장 뒤에 주어지는 경우에는 앞 단어나 뒷 단어가 없으므로 주의해야 한다.이때 경우의 수가 다음과 같이 여러 개로 나뉘어 진다.끝말잇기 단어가 ? 하나이고, 후보 단어도 하나인 경우이 경우에는 문제의 답이 ..
[Baekjoon 1004] 어린 왕자 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/1004문제 출발점에서 도착점까지 이동하면서 최소한의 행성계만 진입/이탈하려 한다.이때 행성계를 진입/이탈하는 횟수를 구하는 문제이다.단 행성계의 경계가 서로 맞닿거나 교차하는 경우는 없고, 출발점과 도착점이 행성계 경계에 걸친 경우도 없다. 풀이 행성계의 경계가 서로 맞닿거나 교차하는 경우가 있었다면 복잡해졌겠지만 다행히 이 경우는 없다. 따라서 행성계의 진입/이탈 횟수를 구하는 것은 출발점과 도착점이 얼마나 많은 행성계 안에 있는지 구하면 쉽게 확인할 수 있다. 예를 들어서 문제에 예시 그림을 보면 출발점은 한 개의 행성계 안에 있고, 도착점은 두 개의 행성계 안에 있으므로 총 세 번의 진입/이탈이 일어난다.만약 행성계의 경계가 서로 맞닿거나 ..
[Baekjoon 27065] 2022년이 아름다웠던 이유 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/27065문제 어떤 수가 있을 때 그 수의 자기 자신을 제외한 약수들의 합이 그 수보다 크면 과잉수, 같으면 완전수, 작으면 부족수라고 한다.어떤 양의 정수 $ n $ 이 주어질 때 $ n $ 이 과잉수이면서 $ n $ 의 모든 약수가 과잉수가 아닌지 구하는 문제이다. 풀이 먼저 약수를 구하는 알고리즘을 사용해야 한다. 이 문제에서는 양의 정수만 고려하기 때문에 양수인 경우만 생각한다.양수인 경우 자기 자신보다 작으면서 자기 자신을 나누었을 때 나머지가 0 인 수를 찾으면 약수이다.이 문제의 경우 주어지는 양의 정수 $ n $ 이 5000 보다 작으므로 쉽게 나머지가 0 인 수를 찾겠다.약수를 구하여 리스트로 반환하는 함수를 구현했다면, 이 함수를..
애스터로이드
인공지능은 전기양의 꿈을 꾸는가