172만명의 커뮤니티!! 함께 토론해봐요.
미해결
C 프로그래밍 - 입문부터 게임 개발까지
#include <stdio.h> #include <stdlib.h> #include <time.h> // 10마리의 서로 다른 동물(각 카드 2장씩) // 사용자로부터 2개의 입력값을 받아서 -> 같은 동물 찾으면 카드 뒤집기 // 모든 동물 쌍을 찾으면 게임 종료 // 총 실패 횟수 알려주기 int arrayAnimal[4][5]; // 카드 지도 (20장의 카드) int checkAnimal[4][5]; // 뒤집혔는지 여부 확인 char *strAnimal[10]; void initAnimalArray(); void initAnimalName(); void shuffleAnimal(); int getEmptyPosition(); int conv_pos_x(int x); int conv_pos_y(int y); void printfAnimals(); void printQuestion(); int foundAllAnimals(); void printAlign(const char *str, int totalWidth); int getVisibleWidth(const char *str); int main(void) { srand(time(NULL)); initAnimalArray(); initAnimalName(); shuffleAnimal(); int failCount = 0; // 실패 횟수 while (1) { int select1 = 0; // 사용자가 선택한 처음 수 int select2 = 0; // 사용자가 선택한 두번째 수 printfAnimals(); // 동물 위치 출력 printQuestion(); // 문제 출력 (카드 지도) printf("뒤집을 카드를 2개 고르세요 : "); scanf("%d %d", &select1, &select2); if (select1 == select2) // 같은 카드 선택 시 무효 continue; // 좌표에 해당하는 카드를 뒤집어 보고 같은지 안같은지 확인 // 정수 좌표를 (x, y)로 변환 int firstSelect_x = conv_pos_x(select1); int firstSelect_y = conv_pos_y(select1); int secondSelect_x = conv_pos_x(select2); int secondSelect_y = conv_pos_y(select2); // 같은 동물인 경우 if ((checkAnimal[firstSelect_x][firstSelect_y] == 0 && checkAnimal[secondSelect_x][secondSelect_y] == 0) && (arrayAnimal[firstSelect_x][firstSelect_y] == arrayAnimal[secondSelect_x][secondSelect_y])) { printf("\n\n빙고! : %s 발견 \n\n", strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); checkAnimal[firstSelect_x][firstSelect_y] = 1; checkAnimal[secondSelect_x][secondSelect_y] = 1; } // 다른 동물인 경우 else { printf("\n\n 땡!! (틀렸거나, 이미 뒤집힌 카드입니다)\n"); printf("%d : %s\n", select1, strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); printf("%d : %s\n", select1, strAnimal[arrayAnimal[secondSelect_x][secondSelect_y]]); printf("\n\n"); failCount++; } // 모든 동물을 찾았는지 여부, 1 : 참, 0 : 거짓 if (foundAllAnimals() == 1) { printf("\n\n 축하합니다 ! 모든 동물을 다 찾았네요 \n"); printf("지금까지 총 %d 번 실수했습니다\n", failCount); break; } } return 0; } void initAnimalArray() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { arrayAnimal[i][j] = -1; } } } void initAnimalName() { strAnimal[0] = "원숭이"; strAnimal[1] = "하마"; strAnimal[2] = "강아지"; strAnimal[3] = "고양이"; strAnimal[4] = "돼지"; strAnimal[5] = "코끼리"; strAnimal[6] = "기린"; strAnimal[7] = "낙타"; strAnimal[8] = "타조"; strAnimal[9] = "호랑이"; } void shuffleAnimal() { // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ for (int i = 0; i < 10; i++) { for (int j = 0; j < 2; j++) { int pos = getEmptyPosition(); int x = conv_pos_x(pos); int y = conv_pos_y(pos); arrayAnimal[x][y] = i; } } } // 좌표에서 빈 공간 찾기 int getEmptyPosition() { // ☐ ☐ ☐ ☐ ☐ 0 1 2 3 4 -> 0 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 5 6 7 8 9 -> 1 1 1 1 1 // ☐ ☐ ☐ ☐ ☐ 10 11 12 13 14 -> 2 2 2 2 2 // ☐ ☐ ☐ ☐ ☐ 15 16 17 18 19 -> 3 3 3 3 3 while (1) { int randPos = rand() % 20; // 0 - 19 사이의 숫자 반환 // 19 -> (3, 4) int x = conv_pos_x(randPos); int y = conv_pos_y(randPos); if (arrayAnimal[x][y] == -1) { return randPos; } } return 0; } int conv_pos_x(int x) { // 19 -> (3,4) return x / 5; } int conv_pos_y(int y) { // 19 -> 19 / 5 ? 몫은 3, 나머지 4 return y % 5; // y를 5로 나눈 나머지 값 } void printfAnimals() { printf("\n======== 이건 비밀인데 . . 몰래 보여줍니다 =======\n\n"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { printAlign(strAnimal[arrayAnimal[i][j]], 8); } printf("\n"); } printf("\n============================================\n\n"); } void printQuestion() { printf("\n\n(문제)\n"); int seq = 0; // seq // checkAnimal // ☐ ☐ ☐ ☐ ☐ 0 1 2 3 4 0 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 5 6 7 8 9 1 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 10 11 12 13 14 // ☐ ☐ ☐ ☐ ☐ 15 16 17 18 19 for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { // 카드를 뒤집어서 정답을 맞혔으면 ' 동물 이름' if (checkAnimal[i][j] != 0) { printAlign(strAnimal[arrayAnimal[i][j]], 8); } else { char temp[16]; sprintf(temp, "%d", seq); // 숫자를 문자열로 바꿔서 printAlign(temp, 8); // 한글처럼 정렬 } seq++; // 아직 뒤집지 못했으면 (정답을 못맞혔으면) 뒷면 -> 위치를 나타내는 숫자 } printf("\n"); } } int foundAllAnimals() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { if (checkAnimal[i][j] == 0) { return 0; } } } return 1; // 모두 다 찾음 } int getVisibleWidth(const char *str) { int width = 0; while (*str) { if ((*str & 0xF0) == 0xE0) { width += 2; str += 3; } else { width += 1; str += 1; } } return width; } void printAlign(const char *str, int totalWidth) { int visibleWidth = getVisibleWidth(str); printf("%s", str); for (int i = 0; i < totalWidth - visibleWidth; i++) { printf(" "); } }
이정완
2025-07-09T14:23:47.575Z
댓글 0
좋아요 0
조회수 90
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
28분 13초 왼쪽 하단 코드 #include <stdio.h> int main() { for (int i = 0; ; i++) { if (i >= 5) { break; } printf("i의 값 : %d\n", i); } } 주신 자료에 보면 출력값으로 i의 값 : 0 i의 값 : 1 i의 값 : 2 i의 값 : 3 i의 값 : 4 이렇게 나와있습니다. 그런데 i의 값 : 5 까지 나와야 하는 것 아닌지 여쭙고 싶습니다.
Vion
2025-07-09T14:10:45.510Z
댓글 2
좋아요 0
조회수 88
미해결
파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
강의 관련 내용은 아닙니다만, VSstudio상에서 kernel을 찾지 못하는 문제가 있어서 문의드립니다. myenv-finance-analysis 이름의 가상 환경을 구축해서 강의를 잘 듣고 있었는데요, 어느 날 다시 강의 수강을 진행하려고 보니까 아래와 같이 kernel을 찾기만 하고 kernel을 찾지 못하네요. 해당 부위를 클릭해서 가상환경을 선택하려고 해도 myenv-finance-analysis 가상환경을 찾지를 못합니다. 가상환경 내에서 pip install ipykernel로 패키지도 설치해놓았는데... 이런 문제가 발생하는 이유가 뭘까요?
python 머신러닝 pandas 객체지향 퀀트 병렬-처리
길상훈
2025-07-09T09:57:36.890Z
댓글 2
좋아요 0
조회수 159
해결됨
베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
안녕하세요. 먼저 좋은 강의 제공해주셔서 감사합니다 정말 잘 듣고 있습니다 🙂 다름이 아니라, 해당 강의(MCP 서버 Cursor에 등록하여 개발 연동)를 보면서 여러 방법을 시도해보고 있긴 하지만, smithery에서 json형식으로 값을 뽑아도 디렉토리 관련 등록 정보는 담겨있지 않는데 선생님께서는 어떤 부분을 수정하셨는지 알려주시면 감사하겠습니다 😀
python 딥러닝 빅데이터 FastAPI 데이터-엔지니어링
kimseung
2025-07-09T05:23:57.893Z
댓글 2
좋아요 1
조회수 241
미해결
업무 자동화를 위한 파이썬 pyautogui, beautifulsoup 크롤링 기초
import time 입력한 이후부터 오류가 나요. & C:/Users/nowiz/AppData/Local/Programs/Python/Python313/python.exe "c:/Users/nowiz/OneDrive/바탕 화면/python_sample/practice_pyautogui.py" File "<python-input-13>", line 1 & C:/Users/nowiz/AppData/Local/Programs/Python/Python313/python.exe "c:/Users/nowiz/OneDrive/바탕 화면/python_sample/practice_pyautogui.py" ^ SyntaxError: invalid syntax powershell이랑 python 같이 어떻게 써요?
nowizgood
2025-07-09T03:48:20.409Z
댓글 1
좋아요 0
조회수 85
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
전반적으로 해설이 혼자 푸는데 이야기하시는 느낌이닌다 다른 글도 그렇던데... 유투브로 쉽다쉽다 샘플영상 올리셔서 돈 냈는데 설명이 두서가 없어요 친절하지도 않고 띄엄띄엄 느낌이고 인쇄물은 성의없고... 죄송합니다 돈낸 사람으로서 느낀점 말씀드립니다. 마지막 포인터 문제 전반적인 해설 간략히 요청드립니다.
주말초딩
2025-07-09T00:42:03.948Z
댓글 1
좋아요 2
조회수 276
해결됨
베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
모의 계좌 잔고 테스트 하는데, 모바일에서도 모의 계좌는 분명히 맞게 확인됩니다. params 확인 부탁드립니다. { "rt_cd": "2", "msg_cd": "OPSQ2000", "msg1": "ERROR : INPUT INVALID_CHECK_ACNO" } params {'CANO': '50142790', 'ACNT_PRDT_CD': '01', 'AFHR_FLPR_YN': 'N', 'OFL_YN': '', 'INQR_DVSN': '02', 'UNPR_DVSN': '01', 'FUND_STTL_ICLD_YN': 'N', 'FNCG_AMT_AUTO_RDPT_YN': 'N', 'PRCS_DVSN': '00', 'CTX_AREA_FK100': '', 'CTX_AREA_NK100': ''}
python 딥러닝 빅데이터 FastAPI 데이터-엔지니어링
꺼부기주식으로 백억가자
2025-07-08T13:28:58.495Z
댓글 2
좋아요 0
조회수 218
해결됨
베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
모의 계좌 잔고 테스트 하는데, 모의 계좌를 분명히 맞게 입력했는데도 { "rt_cd": "2", "msg_cd": "OPSQ2000", "msg1": "ERROR : INPUT INVALID_CHECK_ACNO" } 이렇게 응답됩니다. 어디를 점검해야 할까요? params {'CANO': '50142790', 'ACNT_PRDT_CD': '01', 'AFHR_FLPR_YN': 'N', 'OFL_YN': '', 'INQR_DVSN': '02', 'UNPR_DVSN': '01', 'FUND_STTL_ICLD_YN': 'N', 'FNCG_AMT_AUTO_RDPT_YN': 'N', 'PRCS_DVSN': '00', 'CTX_AREA_FK100': '', 'CTX_AREA_NK100': ''}
python 딥러닝 빅데이터 FastAPI 데이터-엔지니어링
꺼부기주식으로 백억가자
2025-07-08T13:18:24.278Z
댓글 2
좋아요 0
조회수 262
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
안녕하세요! 강의 정말 잘 듣고있습니다 최근에 특강으로 올려주신 JAVA 생성자 호출순서 특강편 PDF 파일 언제 올려주시는지 문의드립니다! "생성자 호출순서"만 다뤄보자! (13개 코드예제)
Charlie
2025-07-08T13:03:22.390Z
댓글 2
좋아요 0
조회수 76
해결됨
실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
1. 무엇을 하고 싶으신가요? 섹션 4 프로젝트 코드를 받아 볼 수 있을까요?
python aws Terraform devsecops
nameunskadms
2025-07-08T12:52:36.492Z
댓글 1
좋아요 1
조회수 120
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
26:31 에서 static int b=0이 정적변수라고 말씀하셨는데요.... 그러면 나중에 출력하는 곳에서 네번째 st.a 출력값은 20인데, 두번째 st.b 출력값은 11이 된다고 하셨는데 class Static란에서 정적변수로 b=0을 선언했으니까 0이 아닐까 하고 헷갈리거든요. 답변 부탁드립니다.
parkcw9677
2025-07-08T12:16:21.046Z
댓글 3
좋아요 0
조회수 89
해결됨
베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
.env파일을 작성하여 어디에다 등록을 해야 되는가요? 연결을 시켜야 되기는 한데...
노윤상(matti.RHO)
2025-07-08T11:59:40.367Z
댓글 2
좋아요 0
조회수 130
해결됨
직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
안녕하세요 한글 관련 파이썬 강의 듣고 있는 수강생입니다. win32com 라이브러리를 이용해서 hwp,hwpx 파일의 내용을 검색하는 기능을 만들고 있는데요, hwp.Open ("파일경로") 로 한글 파일을 열면 아래의 메세지 창이 뜹니다. 이 창이 안 뜨게 한글 파일을 Open하는 방법 좀 알 수 있을까요? 감사합니다. "상위 버전에서 작성한 문서입니다. 이전 판 한글에서는 상위 버전 문서가 올바르게 표시되지 않을 수 있습니다."
야베스
2025-07-08T10:20:43.381Z
댓글 1
좋아요 1
조회수 1369
미해결
프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
영상에서 선생님은 코드를 입력하시면 바로바로 출력이 되시는것 같은데 저는 코드를 입력한 후 저장 그 다음 터미널에 파일명을 입력후 엔터키를 치는 방식으로 출력을 하고 있는데 혹시 선생님처럼 바로바로 출력을 할 수 있는 방법이 있을까요?
오륜경
2025-07-08T10:14:54.986Z
댓글 2
좋아요 0
조회수 105
해결됨
파이썬으로 나만의 블로그 자동화 프로그램 만들기
이해 안되는 부분들이 있어서 네이버 카페에 등업 신청했는데, 바로 적용이 안되는겉아서요 ! 확인부탁드리겠습니다.
python wordpress 웹-크롤링 selenium
dacapo.im100
2025-07-08T10:07:05.517Z
댓글 2
좋아요 0
조회수 325
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
영상 보면 모두 이진수로 표현된 자릿수 안에서만 움직이는 것 같은데, 그렇게 되면 14의 이진수 표현이 1110인데, 왼쪽으로 3번 밀면 0000이 되지 않나요? 이걸 정수로 출력한다고 하면 0이 되는데, 이건 아닐 것 같아서요;
S JW
2025-07-08T10:06:20.737Z
댓글 2
좋아요 0
조회수 75
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
자식 클래스가 재정의하지 않은 것인지 판단하는 것은 부모 클래스에 show(int x)로 정의된 메서드가 없어서 부모클래스에서 정의되지 않았기에 자식클래스가 재정의되지 않았다고 판단되고 그렇기에 업캐스팅 원칙에 의해 부모 클래스에 없는 것은 호출하지 않기때문에 출력값이 부모클래스에서 나온것일까요?
라따뚜이
2025-07-08T09:24:40.477Z
댓글 2
좋아요 0
조회수 50
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
마지막 예시 코드에서 메서드가 아닌 변수를 호출하면 (p.name,c.name) 변수 앞에 선언된 데이터 타입( Parent, Child ) 을 따라가나요?
dbndus0024
2025-07-08T08:55:28.156Z
댓글 2
좋아요 0
조회수 54
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
38분에서 printf 안에 들어가는 값은 a와 sum이고 a는 5로 나와있고 sum은 없고 nsum만 있는데 왜 res를 실행하는지 궁금합니다
주말초딩
2025-07-08T08:00:33.933Z
댓글 2
좋아요 0
조회수 56
미해결
C 프로그래밍 - 입문부터 게임 개발까지
소스코드 필요하신분들 보고하세요! 저두 강의 많이 돌려봤습니다 ㅋㅋㅋㅋ 저는 맥환경이라서 Visual Studio Code를 마이크로소프트에서 다운이 안되더라구요 ㅠ 그래서 인터넷에서 VScode를 사용하구 있는데요. 저와 동일하게 맥 환경을 사용하시는 분은 랜덤함수 사용하실때 #include <> 이 부분에서 3가지 추가해주셔야 랜덤함수 오류없이 올바르게 사용가능합니다. #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand(time(NULL)); printf("\n\n === 아빠는 대머리 게임 === \n\n"); int answer; // 사용자 입력값 int treatment = rand() % 4; // 발모제 상태 (0-3) int cntShowBottle = 0; // 이번 게임에 보여줄 병 갯수 int preCntShowBottle = 0; // 앞 게임에 보여준 병 갯수 // 서로보여주는 병 갯수를 다르게 하여 정답률 향상 (처음에 2개 -> 다음엔 3개) // 3번의 기회 (3번의 발모제 투여 시도) for (int i = 1; i <= 3; i++) { int bottle[4] = {0, 0, 0, 0}; // 4개의 병 do { cntShowBottle = rand() % 2 + 2; // 보여줄 병 갯수(0-1, + 2 -> 2, 3) } while (cntShowBottle == preCntShowBottle); preCntShowBottle = cntShowBottle; int isIncluded = 0; // 보여줄 병 중에 발모제가 포함되었느지 여부 (1 포함) printf("> %d 번째 시도 : ", i); // 보여줄 병 종류를 선택 for (int j = 0; j < cntShowBottle; j++) { int randBottle = rand() % 4; // 0-3 // 아직 선택되지 않은 병이면, 선택 처리 if (bottle[randBottle] == 0) { bottle[randBottle] = 1; if (randBottle == treatment) { isIncluded = 1; } } // 이미 선택된 병이면, 중복이므로 다시 선택 else { j--; } } // 사용자에게 문제 표시 for (int k = 0; k < 4; k++) { if (bottle[k] == 1) { printf("%d ", k + 1); } } printf(" 물약을 머리에 바릅니다. "); if (isIncluded == 1) { printf(" >> 성공 ! 머리가 났어요 !! \n"); } else { printf(" >> 실패 ! 머리가 나지 않았어요 !! \n"); } printf("\n . . . 계속 하려면 아무키나 누르세요 . . ."); getchar(); } printf("\n\n 발모제는 몇 번일까요? "); scanf("%d", &answer); if (answer == treatment + 1) { printf("\n >> 정답입니다."); } else { printf("\n >>땡! 틀렸어요. 정답은 %d 입니다\n", treatment + 1); } return 0; }
이정완
2025-07-08T07:23:04.481Z
댓글 1
좋아요 0
조회수 117