728x90

분류 전체보기 153

FOUNDERS in JEJU 교육 후기

1. 교육기간 교육기간은 2020년 9월 14일부터 2020년 10월 8일까지 이루어졌으나 미루고 미루다.. 지금에서야 후기를 쓴다. Founders 교육 계획표이다. 계획표를 보면 블록체인 개발과 블록체인 기획 두 개로 나누어진 것을 볼 수 있는데 나는 이중 개발자 트랙에 지원하였으므로 형광펜 친 부분이 내가 수강했던 교육이다. Founders in JEJU 프로그램은 블록체인과 인공지능 분야의 전문가들(대부분 교수님, 블록체인기업의 직원, 네이버에서 퇴직 후 스타트업 대표 등이였다..! )이 녹화한 영상을 시청한 후 teams를 통해 실시간 질의응답을 주고받는 방식으로 진행되었다. 2. 해커톤 해커톤에 관한 것은 따로 글을 작성할 예정이지만 (언제 쓸진 모르겠다..ㅎㅎ), 간략하게 말하자면 절대 후회..

리뷰 2021.04.26

[JAVA] "=="연산자와 .equals() 메소드의 비교

문제 우리가 프로그래밍을 할 때 데이터 값이나 문자열을 비교할 때 가장 많이 쓰이는 연산자와 문자열을 꼽자면 ==과 .equals() 일 것이다. 이 둘은 문자열의 값을 비교할 때 각각 어떤 차이가 있을까? 학습 == 연산자와 .equals() 메소드의 비교 1. == 연산자 -비교를 위한 연산자 -주소값을 비교한다. (Call By Reference) -실제 내용이 아니라 그 내용이 적힌 주소를 비교하는 것임 따라서, String str1="abc"; String str2="abc"; 라고 저장한다면, 우리가 보기에 내용이 같기에 ==연산자를 사용했을 때, true를 반환한다고 생각할 수 있지만 컴퓨터의 메모리에 적힌 임의의 주소값은 완전히 다르기때문에 이는 false를 반환한다. 추가로 만약, Str..

[프로보노 프로젝트] ICT 수행계획서 작성

1. 개요 한이음 프로젝트에 참여하고싶어 마음에 드는 주제에 기웃거리다 보안과 인공지능을 합친 주제가 있어 신청하게 되었다. 주제는 "노약자를 위한 공개용 인공지능인 STT API 기반 유선전화 보이스피싱 방지 시스템" 이다. STT API와 라즈베리파이, 스니핑을 활용하여 보이스피싱을 예방하는 하드웨어나 소프트웨어 서비스를 개발하는게 우리팀의 최종 목표이다. 2. 수행 예상 기간 프로보노 프로젝트가 승인되는 시점 (4월 말) ~ 11월 30일 3. 프로젝트 소개 및 제안배경 이미 스마트폰 분야에서 AI로 통화내용을 분석해 전화금융사기(보이스피싱)를 잡아내는 앱이 출시되어 현재 사용하고 있으나 VoIP(인터넷 전화) 또는 일반 유선전화에는 보이스피싱을 예방하기 위한 하드웨어가 없는 실정이다. 따라서 일부..

[JAVA] 백준 1546 평균

문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또는 ..

[JAVA] 백준 8958 OX퀴즈 (String과 char 자료형의 차이, charAt())

문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 학습 앞 문제와 비슷하게 문제에서 제시하는 대로 풀면 된다. 나는 로직을 다음과같이 세웠다. 1. 문자를 입력받는 배열을 선언한다. 2. f..

[JAVA] 백준 4344 평균은 넘겠지

문제대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.첫째 줄에는 테스트 케이스의 개수 C가 주어진다.둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.학습문제를 차례대로 읽으면서 코드를 작성하면 풀 수 있는 쉬운 문제였다. 주석에도 달아놓았지만 문제를 푸는 순서는1. 테스트 케이스 입력 (while)2. 점수 개수 입력 (for 반복문)3. 배열을 더해주며 합과 평균 구하기4. if 조건문을 통해 평균이..

[웹] CRLF 취약점 (HTTP 응답 분할 공격)

1. 사전조사 클라이언트와 서버 간의 HTTP request와 response Message를 살펴보면 헤더와 바디 사이 CRFL 공백이 존재하는 것을 볼 수 있다. 이 HTTP Response CRLF 공백에 악의적인 코드나 스크립트를 삽입하여 XSS를 생성하거나 캐시를 조작하는 해킹기법이 바로 CRLF 인젝션이다. (HTTP 프로토콜의 응답 방식이나 TCP/IP 의 경우 조금 더 공부한 후에 정리하도록 하겠다.) CRLF 인젝션(CWE-93: Improper Neutralization of CRLF Sequences “CRLF Injection”)은 HTTP 응답 헤더나 메일 헤더에 있는 줄바꿈 코드 (CR+LF)를 삽입해 의도하지 않은 헤더필드를 추가하는 취약점이다. - CR(Carriage Ret..

[C] 동아리 5주차 활동 (정수의 자리수 분리)

문제 이번주차 우리 동아리의 연습문제이다. 보기에는 쉬워보이지만 막상 코딩하려하니 조금 시간이 걸렸던..(나만 그럴수도 ㅎㅎ) 초보개발자라 그런지 머리속에 있는 생각을 그대로 구현해내지를 못해서 답답하고 억울한(?) 시간이였다. 그래도 마지막에는 내가 생각했던대로 구현할 수 있어서 뿌듯한 문제기도 했다. 학습 처음에 보고 꽤 재미있는 문제라고 생각했다. 우선적으로 들었던 생각은 세자리 수를 각각의 자릿수로 분리해서 배열에 저장한다음 곱셈의 원리에 따라 다시 더해주어서 마지막 합에 저장하면 어떨까 싶었다. 그러나 마음처럼 잘 되지 않았고 , 그 이유는 함수 div를 선언하여 배열 자체를 넘겨주고 싶었는데 그러면 포인터를 써야 한다는 생각에 지레 겁을 먹었기 때문이다. 그 다음 시도했던 방법은 그냥 정수를 ..

[C] 정수의 자리수 분리

문제 두개의 정수가 입력되었을 때 각 정수를 분리하여라 학습 기초적인 알고리즘이다. 나머지 연산자를 이용하여 하나하나 찍는 방법과 while 반복문을 사용하는 방법 두가지를 모두 작성해보았다. 후에 이를 활용하여 다양한 알고리즘을 짤 수 있을거라 예상한다. (사실 내가 매번 헷갈려서 백업용으로 적어놓는 것!ㅎㅎ ) 코드 #include int main(){ int a, b; scanf("%d %d", &a, &b); //1. printf("1의 자리수 %d \n", a % 10); a = a / 10; printf("10의 자리수 %d \n", a % 10); a = a / 10; printf("100의 자리수 %d \n", a % 10); //2. int c; while(b!=0) { c = b % 1..

[C] 백준 4949 균형잡힌세상 ⚖

*추후 수정예정#define _CRT_SECURE_NO_WARNINGS #include #include #define SIZE 101 //IDEA //1. (,),[,],를 만날때 마다 스택에 push하거나 pop하면서 //균형잡인 문자열인지 판단한다 //2. (,),[,]를 만나면 스택에 쌓는다 //3. ),]를 만나면 스택 맨 윗 부분과 비교하여 pop해준다 //4. 짝을 이루지 않는다면 push한다. //5. 스택의 인덱스를 가르키는 top가 -1라면 스택에 데이터가 //없다는 뜻이므로 균형잡힌 문자열이다. char stack[SIZE]; int top = -1; int push(int n) { if (top >= SIZE - 1) return -1; return stack[++top] = n; }..

728x90