[Programmers] 신고 결과 받기 (2022 KAKAO BLIND RECRUITMENT - Level1, Python3)

코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에는 제한이 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든..

[논문 분석] GoogLeNet (Going Deeper with Convolutions)

Going Deeper with Convolutions We propose a deep convolutional neural network architecture codenamed "Inception", which was responsible for setting the new state of the art for classification and detection in the ImageNet Large-Scale Visual Recognition Challenge 2014 (ILSVRC 2014). The arxiv.org INTRODUCTION 이번에 소개할 논문은 Going Deeper with Convolutions라는 논문으로 GoogLeNet이라는 이름으로 많이 알려져 있다. 참여 연구원 대부..

[논문 분석] A survey on Image Data Augmentation for Deep Learning

"A survey on Image Data Augmentation for Deep Learning" 2019년에 Journal of Big Data에 발행된 논문으로 트렌드를 알기 위한 최신 이슈를 정리하는 Survey Paper이기 때문에 가볍게 읽어볼 수 있는 내용이다. 논문 총 페이지 수가 48장으로 상당히 많으며 이미 Data Augmentation 기법은 많이 알려져 있기 때문에 직접 분석하기보다는 요약된 글을 보는 걸 추천한다. Data Augmentation (데이터 증강) Data Augmentation이란 아래 그림과 같이 하나의 데이터로 여러 개의 데이터를 만들어내는 등의 기법으로 데이터를 증강시키는 기법을 말한다. 물론 아래 기법 이외에도 수많은 방법들이 있다. Data Augment..

[Data Science] 탐색적 데이터 분석 (EDA - Exploratory Data Analysis)

1. EDA란 무엇인가? 탐색적 데이터 분석, EDA(Exploratory Data Analysis)란, 수집한 데이터를 분석하기 전에 데이터의 특성을 관찰하고 이해하는 단계이다. 수집한 데이터를 통해 해결하고자 하는 문제가 있는데 데이터에 대해 잘 모르는 상태에서 무작정 분석할 수는 없다. 따라서 본격적인 데이터 분석에 들어가기에 앞서 거의 필수적으로 거쳐야 하는 과정이다. 다양한 EDA를 적용시켜보면서 나만의 EDA 방식을 연구해보는 것도 좋다. 2. EDA의 목적 여러 가지 시각화 도구 및 통계 기법을 사용하여 데이터를 한눈에 파악하고 이해할 수 있다. 어떤 변수가 예측력이 높고 낮은지 확인할 수 있다. 예측 모델을 구축하기 전에 적합한 통계 도구를 선택할 수 있다. 도출하고자 하는 결과의 기본이 ..

[Data Science] 통계 - 변수의 종류 (질적변수, 양적변수)

데이터 분석에 들어가기 전에 분석할 데이터의 종류에 따라 분석 방법이 달라질 수 있다. 아래 표를 보면서 분석하고자 하는 데이터를 잘 파악한 후 적합한 분석법을 고려해보자. 데이터의 수량에 따른 구분 질적변수 (Qualitative variable) = 범주형변수 (Categorical variable) - 데이터가 특정 카테고리(범주)에 포함되도록 하는 변수 - 명목변수와 순위변수로 나눌 수 있다. - ex) 성별(남, 여), 색깔(빨강, 주황, 노랑), 혈액형(A, B, O, AB), 학점(A, B, C, D, F), 성취도 평가(상, 중, 하) 양적변수 (Quantitative variable) - 변수의 값을 숫자로 나타낼 수 있는 변수 - 이산변수와 연속변수로 나눌 수 있다. - ex) 미세먼지..

[BOJ] 1929번: 소수 구하기 (C, C++, Java, Python3)

1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 힌트 더보기 입력 범위를 보면 M이 1, N이 1,000,000일 때 최악의 경우가 됨을 알 수 있다. 만약 숫자 A를 소수인지 아닌지 판별할 때 1부터 A까지 반복하면서 나누어 떨어지는지 확인한다면 숫자가..

[알고리즘 - 기초] 에라토스테네스의 체, 소수 구하기

에라토스테네스의 체란? 에라토스테네스의 체란 소수를 판별할 때 사용하는 알고리즘으로 고대 그리스 수학자 에라토스테네스가 발견했다. 여기서 말하는 소수란, 1과 자기 자신만을 약수로 가지는 수를 말한다. 에라토스테네스의 체 원리 1) 아래 그림과 같이 1에서 100까지의 수가 있다. 2) 1은 소수가 아니기 때문에 제외하고 2부터 생각해보자. 2는 소수에 해당하기 때문에 소수임을 체크해주고 2의 배수들은 소수가 아니기 때문에 제외시킨다. 3) 그다음 수인 3을 보면 제외되지 않았기 때문에 소수이다. 그리고 3의 배수를 모두 제외시킨다. 4) 그다음 수인 4는 제외됐으므로 5를 확인한다. 5는 제외되지 않았기 때문에 소수이다. 5의 배수까지 모두 제외시키면 아래와 같다. 5) 이렇게 계속해서 반복하다 보면 ..

[BOJ] 2609번: 최대공약수와 최소공배수 (C, C++, Java, Python3)

2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 힌트 더보기 아직 유클리드 호제법을 잘 모른다면 아래 링크를 통해 유클리드 호제법을 먼저 보고 오자. [알고리즘 기초] 유클리드 호제법, GCD(최대공약수) 구하기 유클리드 호제법이란 무엇인가? 유클리드..

[알고리즘 - 기초] 유클리드 호제법, GCD(최대공약수) 구하기

유클리드 호제법이란 무엇인가? 유클리드 호제법(Euclidean Algorithm)은 두 자연수의 GCD(최대공약수 - Greatest Common Devisor)를 구하는 알고리즘이다. 서로 호(互) 덜 제(除) 법 법(法) 유클리드 호제법의 원리 두 개의 자연수 A, B가 있다. (A > B) 그리고 A를 B로 나눈 나머지 R이 있다. R이 0이라면, A와 B의 최대공약수는 B이다. R이 0이 아니라면, A와 B의 최대공약수는 B와 R의 최대공약수와 같기 때문에 A에는 B, B에는 R을 대입한 후 1번으로 돌아간다. 재귀로 구현하기 C / C++ int get_gcd(int A, int B) { int R = A % B; if(R == 0) return B; else return get_gcd(B, ..

[BOJ] 2798번: 블랙잭 (C, C++, Java, Python3)

2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후..