본문 바로가기

작업

(140)
백준 2884(알람 시계) 파이썬(python)으로 해결 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 지각하지 않게 된다. 현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를 언제로 ..
백주 14681번(사분면 고르기) 파이썬(python)으로 해결 문제 예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다. 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다. 입력 첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0) #백준 14681 x = int(input()) y = int(input()) if x>0 and y>0 : print('1') elif x0 : print('2') elif x
백준 2753번(윤년) 파이썬(python)으로 해결 문제 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. 입력 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다. #백준 2753 year = int(input()) if (year%4==0 and year%100!=0) or (year%4==0 and year%400==0) : print('1') else : print('0') C언어 공..
백준 9498번(시험 성적) 파이썬(python)으로 해결 파이썬 기초를 공부하면서 백준 문제를 통해 적용해보는 과정입니다. 문제 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. #백준 9498 a = int(input()) if a>89 : print('A') elif a>79 : print('B') elif a>69 : print('C') elif a>59 : print('D') else : print('F') 입력 함수 input()은 문자열로 인식하기 때문에 정수형 변환을 위한 int() 함수를 적용하였습니다. 파이썬의 조건문은 i..
C언어 가위, 바위, 보 시뮬레이션 perfect c의 12장에 있는 문제를 바탕으로 만들었습니다. 사용자가 가위, 바위, 보 중에서 입력한 값과 시스템이 자동으로 선택한 값을 비교하여 승, 패, 무승부를 가리는 프로그램입니다. #include #include //srand(), rand() #include //time() int main() { //랜덤 값 (난수) 생성 srand((unsigned int)time(NULL)); //랜덤 값을 바탕으로 0, 1, 2 중 하나 int sysN = rand()%3; int myN; printf("가위(0) 바위(1) 보(2) 중에서 하나 입력 : "); scanf("%d", &myN); //가위, 바위, 보 시스템 switch(myN){ case 0: if(sysN==0) { puts("당신..
C언어 특정 문자를 기준으로 문자열을 나누고 역순으로 출력 띄어쓰기가 포함된 문자열을 입력받고 입력된 값의 단어들만 따로 역순으로 출력시키는 코드입니다. (ex. hello world 입력 시 olleh dlrow 출력) char str[100]; printf("한 줄의 문장을 입력하세요 = "); fgets(str, sizeof(str), stdin); //문자 기준 자르기, char *strtok(char *String, char const *ch); char *pt = strtok(str, " "); //공백 문자가 있는 값을 포인팅 //자를 문자열이 더이상 없다면 NULL 반환 while(pt != NULL){ for(int i = strlen(pt)-1; i>-1; i--){ if(pt[i] == '\n') continue; printf("%c", pt..
C언어 문자열 역순으로 출력 문자열을 입력받고서 그 값의 역을 출력하는 코드입니다. char str[20]; printf("한 단어를 입력하세요 = "); fgets(str, sizeof(str), stdin); for(int i =strlen(str)-2; i>-1; i--){ printf("%c", str[i]); } 문자열은 문자들이 나열된 것이고, 배열로 접근이 가능하다는 것을 안다면 쉽게 적용 가능합니다. 문자열의 입력은 fgets() 함수를 사용했습니다. fgets() 함수는 총 3개의 인자를 받습니다. 1. 입력받은 문자열을 저장할 공간 2. 해당 저장 공간의 버퍼 크기 3. 입력 방식 (stdin = 키보드) 입력받은 문자열을 인덱스 0부터 순차적으로 저장되며 마지막은 '\0'의 값을 저장합니다. string.h 라이..
Perfect C 프로그래밍 연습 10장 9, 10, 11, 12 (재귀함수) 재귀 함수를 만들어서 사용하는 문제들로 구성되었습니다. 재귀 함수의 핵심은 정의된 함수 1개가 연속해서 호출되고, 결괏값까지 도출할 수 있어야 한다는 것입니다. 제공된 문제의 내용이 너무 어렵지 않아서 연습하기 좋았습니다. 문제 9. 1~n까지의 합 재귀 함수 int resum(int n); //함수 정의 //main() printf("1~20까지의 합 = %d", resum(20)); //재귀 합 int resum(int n){ if(n==1) return 1; return n + resum(n-1); } 1~n까지의 합을 구하는 재귀 함수는 int형 인자 1개를 받아옵니다. int형 인자는 n의 값에 해당하며 코드에서는 n = 20으로 하였습니다. 재귀 함수 구성에서 중요한 것은 끝맺음할 수 있는 값..