본문 바로가기

분류 전체보기

섭종햇냐 테스트 더보기
[CS] API란? API란? Application Programming Interface의 약자 정의 및 프로토콜 집합을 사용해 두 소프트웨어(어플리케이션) 구성 요소가 서로 통신할 수 있게 하는 매커니즘. 어플리케이션: 고유한 기능을 가진 모든 소프트웨어를 의미 인터페이스: 두 어플리케이션 간의 서비스 계약을 의미. 계약은 요청과 응답을 사용하여 두 어플리케이션이 서로 통신하는 방법을 정의한 것이다. => API는 두 어플리케이션 사이에서 요청과 응답을 전달해주는 매개체(Interface, Gateway) 역할 API 작동방식 클라이언트: 요청을 보내는 어플리케이션. 예시: 휴대폰의 날씨 앱 서버: 클라이언트의 요청에 알맞은 응답을 보내는 어플리케이션. 예시: 기상청의 날씨 데이터베이스 REST API Represent.. 더보기
[백준] 23854 The Battle of Giants (수학, 그리디, 사칙연산, 브론즈2, Python(69점), Java(100점) ver.) 브론즈도 4시간 걸려푸는데 이대로 되나 싶다... 그래도 코테를 아예 통과안해본 건 아니니 믿고 내일부터 달려야겠다. 이번엔 다음주 스터디 주제인 그리디 문제를 풀어보았다. 영어라 스터디장한테 뭐라고 했었는데 생각보다 잘 읽혀서 파파고 없이 그냥 해석해서 풀었다. 파이썬으로 처음에 풀다가, 69점이 나와버려서 자바의 BufferedReader를 이용해 알고리즘은 그대로 옮겨 풀었더니 100점이 나왔다. 그리디(Greedy) 그리디, 탐욕스러운, 욕심 많음 탐욕 알고리즘은 선택의 순간마다, 당장 구할 수 있는 최적의 해를 찾아 답을 찾아가는 방법이다. 탐욕 알고리즘 풀이법 1. 선택 절차(Selection Procedure): 현재 상태에서의 최적의 해답 선택 2. 적절성 검사(Feasibility Che.. 더보기
[백준] 24416 알고리즘 수업 - 피보나치 수 1 (수학, DP, 브론즈1, Python ver.) 코딩테스트가 몰려오고 있어서 대비할 겸, 어제 스터디 알고리즘 주제였던 DP를 브론즈단계로 풀어보았다. DP의 개념을 잠깐 짚어보자. DP(Dynamic Programming) Dynamic Programming, 동적 계획법의 약자 Richard Bellman이 1950년대에 사용한 단어로, 단어가 심오한 뜻이 있어보이나, 의외로 그냥 멋있다는 이유로 만들어졌다고 한다..^^ 이미 한번 계산된 문제의 결과를 저장해두고 재사용하는 효율적인 기법 큰 문제를 작은 문제로 쪼개서 그 답을 저장해두고 재활용한다. 재귀 vs DP 그림으로 재귀와 DP의 계산량 차이를 확인해보자 5번째 피보나치 수를 재귀로 풀면 1+ 2+ 4+ 2 = 총 9번의 연산이 필요하다. 5번째 피보나치 수를 DP로 풀면, 이미 방문했던 .. 더보기
[백준] 10171 고양이 (입출력과 사칙연산, 구현, 브론즈5, C ver.) 백준 단계별로 풀어보기를 진행 중이다. 단계별로 풀어보기의 첫번째 단계의 문제라 쉽게 풀을 줄 알았는데 의외로 바보같이 두번이나 틀렸습니다를 겪게 한 문제. printf에서 특수기호를 사용하려면, \를 붙여야하는 것을 각인 시키는 문제이다. 링크 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 문제 아래 예제와 같이 고양이를 출력하시오. 입력 없음. 출력 고양이를 출력한다. \ /\ ) ( ') ( / ) \(__)| 나의 오답 - 바보같이 엔터만 한 모습 #include int main(){ printf("\ /\\n"); printf(" ) ( ')\n"); printf("( / )\n"); .. 더보기
[CS] JVM의 구조, Java의 실행방식 CS면접 질문 : JVM 구조, Java의 실행방식을 설명하세요 답변 JVM이란 자바 가상머신의 약자로 자바, 운영체제 간의 중개자 역할을 합니다. 자바가 운영체제에 구애받지 않고 프로그램을 실행할 수 있도록 도움을 줍니다. JVM의 구조는 크게 Class Loader Subsystem, Runtime Data Area, Execution Engine, JNI, Native Method Library 5가지로 나누어볼 수 있습니다. Class Loader는 클래스파일을 JVM에 로딩시키고, 링크를 통해 배치하고, static 변수 등을 초기화 하는 역할을 합니다. Runtime Data Area는 자바의 메모리 영역으로, Method Area, Heap Area, Stack Area, PC Registe.. 더보기
[백준] 1193 분수찾기 (수학, 구현, 브론즈1, Python ver.) 링크 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.5 초 (추가 시간 없음) 256 MB 78557 38769 33688 50.984% 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번,.. 더보기
[백준] 2292 벌집 (수학, 브론즈2, Python ver.) https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net N(입력)이 주어지면 1부터 N까지로 최소로 이동할 때 거치는 방 개수를 출력한다. 입력: 13 1 -> 4-> 13 3개의 방을 거침 출력 : 3 입력: 1(1 = 6*(1-1) + 1)) => 출력: 1 입력: 2~7(7 = 6*(2-1)+ 1) => 촐력: 2 입력: 8~19(19 = 6*(3-1)+ 7) => 출력: 3 입력: 20~37(37 = 6*(4-1)+ 19) => 출력: 4 입력: 38~.. 더보기