본문 바로가기
백준 1629 곱셈(모듈러, 재귀) #include #include using namespace std;typedef long long ll;ll a,b,c;ll go(ll a, ll b) { if (b == 1) return a % c; ll ret = go(a, b / 2); // 2의 5승을 2의2승 * 2의 2승 * 2로 바꾸는 연산 ret = (ret * ret) % c; // 곱해준 걸 모듈러 연산 // 홀수인 경우에는 a를 한번 더 곱해주는 연산 if(b%2 != 0)ret = (ret * a) % c; return ret;}int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> a >> b >>.. 2024. 9. 27.
0927 라즈베리파이 GPIO wiringpi 설치wget \https://github.com/WiringPi/WiringPi/releases/download/3.10/wiringpi_3.10_arm64.debsudo apt install ./wiringpi_3.10_arm64.debsudo apt install wiringpigpio 18번 끄고키기gpio -g mode 18 outgpio -g write 18 0gpio -g write 18 1 깜빡이게 만들기 #include #include #include int ledcontrol(int gpio){ int i; pinMode(gpio, OUTPUT); for (int i = 0; i  pwm으로 밝기 천천히 밝아지게 조절#include #include #inc.. 2024. 9. 27.
ISTQB 대비 실라버스 정리 • 1.1장 sw 테스팅 - 결함 식별, sw 산출물 품질 평가sdlc - sw 개발수명주기 verification - sw가 명세( 법률, 규제등)와 기술 요구사항을 충족시키는지validation - 사용자의 요구사항을 충족시키는지  동적 테스팅 - sw를 실제로 실행 하고 분석정적 테스팅 - sw를 실행하지 않고 리뷰하고 정적으로 분석, tc를 도출하기 위해 여러 기법과 접근법을 사용 - 테스트 목적작업 산출물 평가장애 및 결함 식별테스트 대상 커버리지 보장베리피케이션, 밸리데이션 - 테스팅과 디버깅테스팅은 sw 결함으로 인한 장애를 유발(동적 테스팅)하거나 결함을 직접 식별(정적 테스팅) - 동적 테스팅 중 디버깅동적 테스팅 과정 중 장애가 유발됐을때 디버깅은 장애의 원인을 찾아서 제거디버깅 과정은.. 2024. 9. 27.
윈폼 CRUD mssql에 기존에 만들어둔 test 스키마에 books 테이블 추가하고 책 데이터 넣어주기CREATE TABLE BOOKS ( BOOKNO int PRIMARY KEY, NAME varchar(50), CODE varchar(50) ); INSERT INTO BOOKS (BOOKNO, NAME, CODE)VALUES (1, '아기돼지3형제', '111111');INSERT INTO BOOKS (BOOKNO, NAME, CODE)VALUES (2, '톰과제리', '111112');INSERT INTO BOOKS (BOOKNO, NAME, CODE)VALUES (3, '인어공주', '111113');INSERT INTO .. 2024. 9. 25.
mssql 윈폼 연동 mssql 설치 후 데이터베이스에 새 데이터베이스를 추가한다 • db 연결 데이터베이스에 우클릭해서 새 데이터베이스를 만들어주고 .cs 파일에서 sqlconnection으로 mssql에 접속한다  //db연동을 위한 클래스 private SqlConnection sqlConnection = null; //ip, 포트, db이름, id, pw 순으로 connectionstring에 삽입 private string connectionString ="SERVER=127.0.0.1,1433;DATABASE=test;UID=sa;PASSWORD=1111";  private void btn1_Click(object sender, EventArgs e) .. 2024. 9. 25.
백준 3986 (스택) 문제이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 깨고 말았다. 안타깝게도 자는 동안 키보드가 잘못 눌려서 보고서의 모든 글자가 A와 B로 바뀌어 버렸다! 그래서 평석이는 보고서 작성을 때려치우고 보고서에서 '좋은 단어'나 세보기로 마음 먹었다.평석이는 단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 B끼리) 쌍을 짓기로 하였다. 만약 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 그 단어는 '좋은 단어'이다. 평석이가 '좋은 단어' 개수를 세는 것을 도와주자.입력첫째 줄에 단어의 수 N이 주어진다.. 2024. 9. 23.
팰린드롬 만들기(구현?) 문제임한수와 임문빈은 서로 사랑하는 사이이다.임한수는 세상에서 팰린드롬인 문자열을 너무 좋아하기 때문에, 둘의 백일을 기념해서 임문빈은 팰린드롬을 선물해주려고 한다.임문빈은 임한수의 영어 이름으로 팰린드롬을 만들려고 하는데, 임한수의 영어 이름의 알파벳 순서를 적절히 바꿔서 팰린드롬을 만들려고 한다.임문빈을 도와 임한수의 영어 이름을 팰린드롬으로 바꾸는 프로그램을 작성하시오.입력첫째 줄에 임한수의 영어 이름이 있다. 알파벳 대문자로만 된 최대 50글자이다.출력첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.예제 입력 1 복사AABB예제 출력 1 복사ABBA예제 입력 2 복사AAABB예제 출력 .. 2024. 9. 22.
백준 9375 (경우의 수, map) 문제해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까?입력첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다.각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다.다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을 수 있다.모든 문자열은 1이상 20이하의 알파벳 소문자로 이루어져있으며 같은 이름을 가진 의상은 존재하지 않.. 2024. 9. 22.
사용자 정의 컨트롤러 프로젝트에 사용자 정의 컨트롤을 추가 추가한 도구 상자에서 원하는 위젯을 가져다가 넣어두고 빌드하면윈폼창의 도구상자에서 만들어둔 컨트롤을 가져다가 사용 가능하다 이런 식으로 만들어 둔 걸 윈폼에서 사용자 정의 컨트롤을 가져와서 사용하려고 할때 접근 지정자 문제로 바로 컨트롤의 위젯에 접근은 불가능하다유저 컨트롤러에서 프로퍼티로 접근할 수 있게 해주자 public string label1text { get { return label1.Text; } set { label1.Text = value; } .. 2024. 9. 21.
단일 프로세스 멀티 프로세스 안하고 단일 프로세스 하는 이유 같은 프로그램 여러개 띄워서 충돌하거나 사용하는 사람이 작업중인 프로그램이 뭔지 햇갈려서 실수하는걸 방지 • Mutex 공유 자원을 한 프로세스가 단독으로 사용 가능하게 만들기 위해 뮤텍스를 사용Program.cs 의 실행 부분에 뮤텍스를 설정해 프로그램을 한개만 실행 가능하게 하는 코드 bool mutexLock = false; Mutex mutex = new Mutex(true, Assembly.GetEntryAssembly().FullName, out mutexLock); //이미 동일 프로세스가 생성되어있는지 체크하고 없을때만 새 프로세스 생성 if (mutexLock ==.. 2024. 9. 21.
이벤트 지금까지 ui배치 후 더블클릭 등으로 이벤트를 등록해서 사용했는데어떻게 이렇게 한 것 만으로 되는지 자세하게 알아보자 버튼의 클릭 이벤트를 처리할때 click 속성은 이벤트 핸들러 이고, 이벤트 핸들러는 델리게이트 타입이다.그러므로 델리게이트 문법을 사용해서 해당 동작을 할때 발생시킬 메서드를 등록할 수 있다 기존 델리게이트 문법보다 훨씬 편하게클릭 동작할때 얘도 실행해줘 하는 형태로 전달해주면 아래와 같은 경우에는 btn1이 뜬 후 확인하면 clicked2도 팝업된다 - 이벤트 핸들러 원형void 타입이기에 전달해주는 메서드 또한 void 타입으로 전달해줘야 한다.. 그렇지 않으면 당연히 빨간줄뜸public delegate void EventHandler(object sender, EventArgs e.. 2024. 9. 21.
윈폼 datatable, dataset, datagridview • datatable 사용datagridview 안에 데이터테이블을 넣어서 표현해보자form에 datagridview를 만들어서 넣어두고 폼이 초기화될때 데이터테이블이 들어가게 하는 방식private void Form1_Load(object sender, EventArgs e){ DataTable dt = new DataTable(); DataColumn dc = new DataColumn(); dc.ColumnName = "int"; dc.DataType = typeof(Int32); DataColumn dc2 = new DataColumn(); dc2.ColumnName = "name"; dc2.DataType = typeof(string); dt.Colum.. 2024. 9. 21.
윈폼 시작하기 2 (판넬, 스플리터, 테이블 레이아웃 판넬, 툴스트립) • toolstrip 이미지 있는 버튼이나 다양한 UI을 추가, 당연히 추가한 버튼 등에 이벤트 등록 가능  • panel & spliterspliter를 panel과 함께 사용해서 작업 영역을 구분할때 사용속성에서 dock 속성을 이용해서 어디를 구분할지 설정패널도 패널 속성의 dock을 이용해서 배치해서 작업영역을 설정하고 스플리터로 경계면을 설정하는걸로 이해했다 •  table layout panel   테이블 레이아웃 우상단 버튼을 눌러서 행/열의 크기나 갯수를 변경 가능하다테이블 안에 있는 오브젝트들은 columnspan속성과 rowspan 속성을 이용해서 몇 칸을 차지할건지 설정 가능하다 2024. 9. 21.
백준 1620 (map) 문제 오박사 : 그럼 다솜아 이제 진정한 포켓몬 마스터가 되기 위해 도감을 완성시키도록 하여라. 일단 네가 현재 가지고 있는 포켓몬 도감에서 포켓몬의 이름을 보면 포켓몬의 번호를 말하거나, 포켓몬의 번호를 보면 포켓몬의 이름을 말하는 연습을 하도록 하여라. 나의 시험을 통과하면, 내가 새로 만든 도감을 주도록 하겠네.입력첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 물어봐도 괜찮아. 나는 언제든지 질문에 답해줄 준비가 되어있어.둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어와. 포.. 2024. 9. 21.
윈폼 시작하기 (이벤트, MDI, 로그인) 윈폼을 하는 이유유니티로 하는 프로젝트를 몇번 해보면서 닷넷.. C#.. 해볼까? 라는 생각을 하게 되었고기존에 해본 QT와 같은 GUI 기반에 웹 개발, 스마트팩토리나 iot 분야 등 다양한 분야로 사용 할 수 있는 프레임워크라 생각해 기술스택 확장, 직업선택의 폭을 넓히기 위해 윈폼을 공부해보자!복습을 위해 기록해두면 미래의 내가 보고 복습할거라 믿는다 비주얼 스튜디오에서 윈폼 으로 프로젝트 만들어서 시작윈폼 창에서 도구 상자에서 오브젝트 가져다가, 해당 오브젝트(버튼,라벨) 속성에 보이는 이벤트를 코드로 정의해서발생시킬 수 있다  button1.Click += MyButton_Click; private void MyButton_Click(object sender, EventArgs e).. 2024. 9. 21.
tcp 채팅 프로그램 1. 사용하려는 서버 측에 mysql을 설치.. 하려고 했으나 라파이에서 mysql이 설치 불가능해 mariadb 설치sudo apt-get install libmariadb-dev 2. 컴파일 할때 MySQL 클라이언트 라이브러리 사용을 명시라파이 컴파일aarch64-linux-gnu-gcc -o tcpServer tcpServer.c -I/usr/include/mariadb -L/usr/lib/aarch64-linux-gnu -lmariadb gcc -o server tcpServer.c -lmysqlclient  3. 테이블 구조CREATE TABLE messages ( id INT AUTO_INCREMENT PRIMARY KEY, client_socket INT, text VARC.. 2024. 9. 13.
0906 웹서버 부팅시 실행 • 부팅시 웹 서버 자동 실행 리눅스 환경[Unit]Description=webserver[Service]ExecStart=/home/ubuntu/webserver/web 8000Type=simpleWorkingDirectory=/home/ubuntu/webserver[Install]WantedBy=multi-user.target/etc/systemd/system 폴더에 webserver.service 파일을 만들고 아래 내용을 작성  sudo systemctl daemon-reload  sudo systemctl start webserver  sudo systemctl status webserver curl 명령어로 실행한다 curl http://127.0.0.1:8000/index.html?led=o.. 2024. 9. 6.
백준 9996 한국이 그리울 땐 서버에 접속하지 (문자열) 문제선영이는 이번 학기에 오스트레일리아로 교환 학생을 가게 되었다. 호주에 도착하고 처음 며칠은 한국 생각을 잊으면서 즐겁게 지냈다. 몇 주가 지나니 한국이 그리워지기 시작했다. 선영이는 한국에 두고온 서버에 접속해서 디렉토리 안에 들어있는 파일 이름을 보면서 그리움을 잊기로 했다. 매일 밤, 파일 이름을 보면서 파일 하나하나에 얽힌 사연을 기억하면서 한국을 생각하고 있었다.어느 날이었다. 한국에 있는 서버가 망가졌고, 그 결과 특정 패턴과 일치하는 파일 이름을 적절히 출력하지 못하는 버그가 생겼다.패턴은 알파벳 소문자 여러 개와 별표(*) 하나로 이루어진 문자열이다.파일 이름이 패턴에 일치하려면, 패턴에 있는 별표를 알파벳 소문자로 이루어진 임의의 문자열로 변환해 파일 이름과 같게 만들 수 있어야 한다.. 2024. 9. 2.
프로세스 간 통신(파이프, ipc) 프로세스 간에는 공유되는 부분이 없기에 별도의 방법이 필요하다 • 파이프 부모, 자식 프로세스 간의 통신을 위해서 사용한다#include #include #include #include #include #include int main(){ int pfd[2]; pipe(pfd); // pfd[0] - read, pfd[1] - write 하는 파이프 printf("%d, %d\n", pfd[0], pfd[1]); char buf[] = "hello parent"; char buf2[1024]; int n; switch (fork()) { case -1: perror("fork error"); exit(1); break;.. 2024. 8. 29.
백준 11655 : ROT13 문제ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다.예를 들어, "Baekjoon Online Judge"를 ROT13으로 암호화하면 "Onrxwbba Bayvar Whqtr"가 된다. ROT13으로 암호화한 내용을 원래 내용으로 바꾸려면 암호화한 문자열을 다시 ROT13하면 된다. 앞에서 암호화한 문자열 "Onrxwbba Bayvar Whqtr"에 다시 ROT13을 적용하면 "Baekjoon Online Judge"가 된다.ROT13은 알파벳 대문자와 소문자에만 적용할 수 있다. 알파벳이 아닌 글자는 원래 글자 그대로 남아 있어야 한다. 예를 들어, "One is 1"을 ROT13으로 암호화하면 "Bar vf 1"이 된다.문자열이 주어졌을 때, "ROT13"으로 암호화한 다.. 2024. 8. 28.