본문 바로가기

전체 글

(166)
백준 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..
무선 랜카드의 기능을 공유기로 만들기 공유기로 무선 랜카드 기능을 수행할 수 있도록 만들어 보겠습니다. 무선 랜카드는 간단하게 말해서 와이파이(wifi)를 잡아서 인터넷을 사용할 수 있도록 도와주는 장비입니다. 요즘 대부분의 통신기기, 노트북 등 인터넷을 사용하는 장비에는 랜카드가 설치되어 있기 때문에 간단하게 와이파이를 잡아 사용하실 수 있습니다. 하지만 데스크톱 등의 유선을 주로 사용하는 환경에서는 랜카드가 포함되어 있지 않는 경우가 많습니다. 그럴 때 무선 인터넷의 기능을 만들어 주기 위해 무선 랜카드를 사용하는 것입니다. 공유기를 활용하여 무선 랜카드의 기능을 수행할 수 있도록 하는 방법을 배워왔습니다. 대표적으로 활용되는 방법은 다음과 같습니다. 1. 유선으로 인터넷이 들어오지 못해 공유기를 구현할 수 없을 때 2. 다른 곳에는 공..
삼성 노트북 배터리 교체 (AA-PB9NC6B) 2010년 정도에 구매한 삼성 NT300E5E-S51J 노트북을 지금까지 사용하고 있습니다. 남들이 오래되었으니 바꾸는 게 좋다고 하지만 아직도 뒤처지지 않고 잘 작동해서 바꾸기가 싫어요 ㅎ... 최근에 국가근로 관련해서 노트북의 사용이 필요할 것 같아 가져왔습니다. 하지만 타지의 공기를 느껴서 그런지 배터리 부분에 문제가 생겼어요. 1. 충전상태가 0%에서 올라가지 않았고 2. 노트북 충전기를 뽑은 상태에서 전원이 켜지지 않으며 노트북 작동 중에 충전기를 뽑으면 바로 꺼집니다. 3. 충전기를 꼽으면 제대로 작동되니 충전기 문제는 아닙니다. 노트북을 택배 발송을 통해 가져왔기 때문에 운송 중 충격에 의해 내부에 문제가 발생했을 수 있다고 생각했습니다. 그래서 먼저 내부를 열어보았습니다. 배터리 연결 단자..
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으로 하였습니다. 재귀 함수 구성에서 중요한 것은 끝맺음할 수 있는 값..
Perfect C 프로그래밍 연습 10장 1, 3, 4, 5번 해결 10장은 함수를 만들어 코딩을 하는 연습을 제공하고 있어요. 함수를 사용하다 보니 코딩이 상당히 쉬워졌네요. 후... 코드는 1번을 제외하고는 모두 main 부분을 생략하여 함수 정의, main 내부 구문, 함수 내용으로 코드를 올렸습니다. 문제 1. #include double inchtocm(double inch); //inch -> cm int main(){ //문제1 double value; //inch값 입력 printf("cm로 변환할 inch값 입력 = "); //scanf 형식에서 버퍼의 크기가 추가된 scanf_s 사용 scanf_s("%lf", &value, sizeof(double)); //출력 매개로 함수 사용 printf("%.2f inch는 %.2f cm 입니다.\n", valu..
부상형 구피 치어통 구매 및 설치 최근에 임신한 3마리의 암컷 구피 중 한 어미가 꼬물이들을 낳았는데요, 줄곳 구피 치어들을 합사 시켜 키워 놓은 수조여서 카니발리즘(동족 포식)이 생기지 않을 거라 생각했습니다. 하지만 오로지 생각이었죠. 밤에 3마리 정도 보고 하루를 마무리했는데, 다음날에 없더라구요 ㅠㅠ 이번 꼬물이들 이전에 확인된 치어는 4마리였고 지금도 잘 자라고 있어요. 지금 생각해보면 4마리는 겨우 숨어서 살아있었을 수도 있겠더라구요. 치어의 맛을 느껴버린 구피들이 있을 것이고, 그러면 학습은 의미가 없겠죠? 다시 한번 치어들도 동족임을 학습시키기 위해 격리가 필요하다고 생각했습니다. 그저 지켜볼 수 있게만 해놓고 먹을 수 없는 녀석들임을 인식시켜주려고 해요. 그래서 이번에 치어 분리통을 처음 구매해 보았습니다! 2900원에 ..