전체 글

열심히 사는 태윤씨
· CS/Git
1. Git과 Github의 차이점 Git : 개인 컴퓨터 내에서 프로젝트의 변경된 내용을 관리하는 도구 (버전 관리 도구) Github : 코드 저장소 (like 코드계의 클라우드) Version : 특정 시점에서 프로젝트의 상태 2. Git의 4가지 영역 git은 크게 4가지 영역으로 나눌 수 있다. (1) Working Directory (modified) modified : 작업영역 개인 PC 내에서 코드를 수정하고 새로운 파일을 추가하는 등의 개인적인 수정작업을 하는 영역 (2) Staging Area (staged) staged : 준비 영역 commit하기 이전에 add된 파일들이 모여있는 영역 (3) Local Repository 파일들이 commit되어 버전이 생성된 상태로 존재하는 영역..
-목차- 1. 문제 설명 2. 문제 이해 및 풀이 과정 1. 문제 설명 2. 문제 이해 (1) 외부 변수를 통해 여러 개의 c파일에 정리한다고 하더라도 이 프로그램은 엄청난 규모의 프로그램이 아니므로 main.c에서 함수로서 전부 선언해준다음 외부 c파일에 함수들을 옮겨담도록 하자. (2) main.c (큰 틀) #include #include #include "register.h" #include "allprint.h" #include "personalprint.h" struct person_lst { char p_name[20]; char p_num[20]; }; struct person_lst p[100]; // 사람 정보 100개 정도 저장 가능 int num; // 가짓수 1,2,3,4 중 택 ..
https://www.acmicpc.net/problem/2331 2331번: 반복수열 첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 최근에 dfs & bfs 문제만 유형별로 골라서 풀고 있는중이라 문제 유형을 알고 푸니 쉽게 접근이 가능했다. 주어진 A, P값에 따라 반복순열이 다르게 나온다. 예제 1의 경우 57 -> 74 -> 65 -> 61 -> ... -> 37 , 58 -> 89 -> ... -> 37 -> 58 로 순열이 나타난다. n번쨰 값이 n-1번째 값으로부터 파생된다는 점에서 일종의 방향성을 발견할 수 있었다! ② 아이디어 열기 문제에서 구하고자 하는 값은 무한으로 반복..
https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 '어 뭐야? 그냥 버블정렬을 이용하여 오름차순으로 정렬한 뒤 0번째 인덱스 요소와 마지막 인덱스 요소를 뽑으면 끝인데?' 라고 생각했지만 시간초과가 나버렸다... #include int main(void) { int N,k; std::cin >> N; int arr[N]; for (int i = 0; i < N;..
https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 처음에는 time_t 를 이용해야하나 싶었는데.. 알고보니 솔직히 노가다 문제였다..!! ② 아이디어 열기 #include #include int main(void) { int x,y; std::cin >> x >> y; // x월 y일 입력 받기 std::string week[] = {"SUN","MON"..
https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 설명 풀이 과정 굉장히 쉬운 문젠데... std::endl이 "\n"보다 느리다는 것을 깨닫게 해준 고마운 문제이기도 하다. ▶ 둘의 속도에 차이가 나는 이유는 무엇일까??? std::endl은 버퍼를 비우고 "\n"은 버퍼를 비우기 않기때문이라고 한다. 말은 쉽지... 도대체 버퍼가 뭔데..??라고 물을 수도 있기에 버퍼까지 덤으로 조사해보았다!! 버퍼는 임시 메모리 공간이다. 입력이나 출력이 바로 이루어지는게 아니라 버퍼에 담아둘 수 있다. 버퍼를 사용하면 얻을 수 있는 장점은 1. 문자를 한..
https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 문자열을 입력받아서 10개씩 끊기만 하면 되는 문제였다. 다만 끊는 방법을 몰랐을 뿐...!! ② 아이디어 열기 substr함수를 통해 쉽게 구현할 수 있었다. #include #include int main(void) { std::string str, arr[10000]; std::cin >> str; // 문자열 입력 받기 int str_length = str.length(..
https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 문자열을 입력받아서 10개씩 끊기만 하면 되는 문제였다. 다만 끊는 방법을 몰랐을 뿐...!! ② 아이디어 열기 substr함수를 통해 쉽게 구현할 수 있었다. #include #include int main(void) { std::string str, arr[10000]; std::cin >> str; // 문자열 입력 받기 int str_length = str.length(..
https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 문제를 보자마자 '그냥 입력값을 배열에 저장하여 for문을 통해 배열의 요소를 하나씩 더하면 되겠구나'라는 생각을 했지만.. 예제 3번처럼 25자리의 숫자를 배열에 집어넣을 수 없기에 다른 방법이 필요했다..!! ② 아이디어 열기 입력값을 한번에 배열로 받지 않고 입력값 하나하나를 받으면 쉽게 해결할 수 있었다-!!!! #include // 표준입출력 클래스가 담긴 헤더 파일 int main(void) { int tc, resul..
2021년 12월 2일 강의 중에 교수님께서 오늘은 정말 특별한 날이라고 말씀하셨다. '왜지..? 오늘 결혼 기념일이신가..??' 알고 보니 오늘은 2021년 12월 2일, 즉 20211202 대칭절(?!)이었던 것이었다!! 뭐 나름 신기하기도 하고 정말 그 날이 특별한 날인거같기도 해서 집에 와서 다음 대칭절은 언제일지 구해보았다. ▶ 풀이의 순서 1. 우선 오늘 날짜를 변수에 담아야한다. 2. while문을 통해 9999년까지 대칭절을 구해보자. 3. palindrome인지 아닌지(즉, 대칭절인지 아닌지)에 대한 코드를 구현해야한다. 이를 코드로 구현하면 다음과 같다. #include #include #include #include long int get_day(tm * pnow) { long int..
태윤이
태윤 개발 블로그