프로그래밍 언어/C 81

[C언어] 문자열 포인터와 문자열 배열 차이 정리

C언어에는 문자열을 다루기 위해 문자열 포인터를 사용하거나 문자열 배열을 사용합니다. 이 둘은 비슷한 것같지만 다르므로 명확히 구분해 이해해야합니다. 문자열 포인터은 특정 포인터에 문자열의 주소를 저장한 것이고, 문자열 배열은 문자를 배열의 형식으로 저장한 것입니다. 문자열 포인터와 문자열 배열의 개념 char name[5] = "1234"; // 문자열 배열 const char* str = "yahoo"; // 배열 포인터 문자열 배열은 말그대로 문자를 배열의 형식으로 저장한 것을 말한다. 특히 문자열 배열은 포인터 상수와 동일하다. 포인터 상수이기 때문에 메모리의 위치를 바꿀 수 없는데 이는 특징에서 자세히 설명한다. 문자열 포인터는 특정 포인터에 문자열의 주소를 저장한 것이다. 문자열 포인터와 문자..

백준 C언어 1011번 Fly me to the Alpha Centauri 풀이

https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를..

백준 C언어 1978 소수 찾기 풀이

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 문제 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 풀이 (소수: 수학에서 1과 그 자신 이외의 자연수로는 나눌 수 없는 1보다 큰 자연수) 풀이1) #include int main() { int n; int num, cnt = 0; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &num); for (int j = 2; j 최대한..

C26451번 오류 해결

문제상황 #include #include int main() { int T; scanf("%d", &T); int x, y, n; //n은 거리 int a; for (int i = 0; i < T; i++) { scanf("%d %d", &x, &y); n = y - x;//45 50 이든 0 5이든 공간 이동 장치 작동 횟수 //차이 없음 a = (int)sqrt(n); printf("a =%d", a); if ((n) == a * a) { printf("%d\n", 2 * a - 1); } } return 0; } 4를 입력받아 제곱근을 구하려고 하였으나, 오류와 함께 값이 입력되지 않음. 4의 제곱근 2가 도출되어야하는데 이런식으로 나옴. 원인 sqrt함수는 인수로 int형을 받지 않기 때문에 er..

C언어 백준 10757 큰수 A+B 풀이

https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 풀이 문제를 풀어본 결과, c언어에서 왜 이렇게 큰 자리 수를 출력하지 못하는지 그 원인에 대해서 파악하는 것이 가장 중요할 것이라고 판단. 따라서 이번 포스팅은 그 이유에 대해 중점적으로 설명할 것입니다. 오류 #include int main() { int A, B; scanf("%d %d", &A,&B); printf("%d", A + B); return 0; } 일단 그냥 아무생각없이 이런 식으로 계산을 해보았는데요....

C언어 2839 설탕 배달 풀이

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1..

C언어 2775번 부녀회장이 될테야 풀이

https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는..

C언어 백준 10250번 ACM 호텔 풀이

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 ..

C언어 백준 2869번 달팽이는 올라가고 싶다. 풀이

https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 풀이 시간초과 코드 #include int main() { int A, B, V; int x = 1; scanf("%d %d %d", &A, &B, ..

C언어 백준 1193번 분수찾기 풀이

https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 풀이 1)배열은 다음과 같이 분류할 수 있다. 1/1 1개..

728x90