목록2021/09 (104)
치춘짱베리굿나이스
알파벳 찾기 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 풀이 #include int main(void) { char str[101]; int alphabet..
시험 성적 문제 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 시험 성적을 출력한다. 풀이 #include int main(void) { int score; scanf("%d", &score); if (score = 90) printf("A"); else if (score = 80) printf("B"); else if (score = 70) printf("C"); else if (score =..
나머지 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 풀이 #include int main(void) { int modulo[42]; int index; int n; int count; count = 0; index = -1; while (++ind..
상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답을 출력한다..
알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 지각하지 않게 된다. 현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, ..
1. 힙 버퍼 오버플로우 구조체 메모리 할당할때 sizeof(자료형이름) 이 아니라 sizeof(변수이름) 으로 적는 바람에 포인터 크기만큼만 할당됨 바본가? 2. 혼자노는 철학자 스레드 생성할때 인덱스 ++ 안해줌 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 3. 메모리 해제하고 재사용 죽었는지 체크 변수나 철학자 인원수, 철학자 지속시간 등을 다 한 구조체에 몰아넣었는데 해당 구조체 메모리 해제하고 다시 접근해서 터짐ㅋㅋ 4. 데드락 성김이랑 홀짝 나누기 관련해서 그렇게 얘기해놓고선 그거 안해줘서 예쁘게 데드락 걸림 성게가 힌트 줘서 바로 고쳤다 성게 이즈 갓 오늘부터 성게 방향으로 매일 3번씩 절합니다 5. 시간역행 아마 스레드 2가 시간만 저장한 상태에서 컨텍스트 스위칭이 일어나는바람에.. 이렇게된듯..
ㅡ추.추추추.추추추추.추추.추추추추추추.추추.추워 내가미쳐 진짜 마크다운 다깨지는거 돌겠네 노션짱 티스토리똥 💩💩💩💩💩💩💩💩💩💩💩💩 pthread.h pthread_create int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); attr 변수에 저장된 속성대로 새 스레드를 현재 프로세스 내에 생성한다 attr이 NULL이면 디폴트 속성으로 생성된다 attr 내부 값이 중간에 변한다고 해서 이미 생성된 스레드의 속성이 변하진 않는다 생성된 스레드는 start_routine에 지정된 함수 포인터에 해당하는 함수를 바로 실행시킨다 만약 함수가 종료되면 (return ..