목록전체보기 (101)
먹었으면 뇌를 쓰자

문제 정답 나는 이 문제의 구조를 이해하지 못해서 틀렸다. 테스트 케이스를...입력받는 건가? 아니면 5번이라고 명시를 하는 건가? a+b 연산 자체는 구현하는 데 별 어려움이 없지만 갑자기 정처기에서나 볼 법한 테스트 케이스라는 게 등장해서 당황했다. 결론적으로, 테스트 케이스 횟수를 Scanner 클래스로 입력받는 것이 맞다. 그리고 이건 for문의 반복 횟수로 들어간다. (i

문제 정답 반복문 공부한지 좀 돼서 맞힐 수 있을까 조마조마했다 그래도 내 힘으로 풀려고 노력하니까 맞았다! 내가 생각한 알고리즘은 다음과 같다. - scanner 클래스로 입력 값 number 받기 - 입력 값에 곱할 1~9는 배열 gugu 미리 만들어두기 - 입력 값에 배열 값을 순서대로 곱한 변수 output 선언하기 - sysout으로 출력 형식에 맞게 출력하기 사실 알고리즘을 처음 생각할 때는 배열이 아닌, for문 안에서 곱하는 값을 1에서 9까지 차례로 증가시키려고 했다. 그런데 증가를 시키려고 하니 막상 어떻게 할지 약간 머리가 복잡쓰...^^;; 이렇게 푼 사람도 있을까? 구글링으로 다른 사람의 정답도 살펴봤다. 어떤 분은 for문에서 선언한 i 변수 자체를 이용해 곱하는 값을 1에서 9..

1. 컴퓨터 컴파일은 무엇인가 컴파일(compile)은 번역(translate)이다. 컴파일은 우리의 말을 컴퓨터 말로 번역하는 것이다. 컴퓨터는 무엇인가 메인보드 { CPU (중앙처리장치) : 댁알이, 데이터 저장 X RAM (메모리) : CPU 개인 비서 HDD/SSD (보조기억장치) : 창고, 데이터 저장 O } CPU : "데이터 내놔." 보조기억장치 : "데이터 너무 많아서 찾는 데 오래 걸려." RAM : "회장님. 저 데이터. 잡을까요" 보조기억장치 -> RAM -> CPU Photoshop 파일 -> (roading) -> Photoshop 실행 2. 운영체제 운영체제는 무엇인가 보조기억장치 -> RAM -> CPU Photoshop 파일 -> (roading) -> Photoshop 실행..

무선 랜 이해하기 지금까지는 유선인 랜선 방식의 네트워크에 대해 알아보았다. 이제는 랜선을 사용하지 않고, 전파를 이용해서 무선으로 네트워크를 형성하는 방법을 많이 사용한다. 가령 카페에 갔을 때, 라우터와 스위치에 랜선을 꼽고 노트북을 해야 한다면 이토 준지 만화처럼 기괴한 모습으로 모여 앉아 노트북을 하는 사람들을 볼 수 있을 것이다. 무선 랜을 사용하면 귀찮게 랜선을 꼽을 필요가 없고, 랜선이 닿기 어려운 상황에서도 전파로 통신할 수 있다. 그러나 유선보다 속도가 불안정하고, 전파가 약하면 통신이 잘 끊기며, 해킹 위험이 높아진다. 무선 랜 무선 액세스 포인트(WAP, Wireless Access Point)와 무선 클라이언트(스마트폰, 노트북 등)으로 구성된다. WAP은 무선 공유기, 무선 AP라..

네트워크의 전체 흐름 살펴보기 힘들었다. 여기까지 달려오느라. 그렇지만 네트워크를 이루는 나무의 이름과 모습을 하나하나 살펴보고 왔기 때문에, 이제 네트워크라는 커다란 숲을 한눈에 바라볼 수 있게 되었다. 대단하다. 물론 숲을 보면서도 '저 나무 이름이 뭐였지...?' 라는 생각이 들 것이다. 하지만 이런 상황을 대비해서 나는 7개의 게시물을 작성해놓았다. 까먹으면 다시 보러 가면 된다. 랜 카드에서의 데이터 전달과 처리 스위치와 라우터에서의 데이터 전달과 처리 웹 서버에서의 데이터 전달과 처리 네트워크의 전체 흐름을 위와 같이 3가지의 연속적 단계로 파악해보자. 즉, 내 컴퓨터(클라이언트)에서 웹 서버(서버)로 정보를 요청하는 과정을 따라가보는 것이다. 이번엔 각을 잡고, 예쁘게 아름답게 정리할 것이다..

문제 정답 나는 처음에 당연히 내가 틀릴 줄 알았다. 비록 '틀렸습니다!!!'를 볼지언정, 한번 시도나 해보자는 마음으로 코드를 짰다. 그리고 '맞았습니다!'를 볼 수 있었다. 스스로 봤을 때 그다지 똑똑한 코드는 아니라고 생각한다. 그렇지만 논리적으로 결함이 없는 코드는 확실하다. 나처럼 수학적 사고가 아직 친숙하지 않은 비전공자들에게는 오히려 이 코드가 이해하기 쉽고 사용하기도 편할 것이다. 주사위의 세 수는 각각 a,b,c이며 분기는 3개로 나누어진다. ① 세 수가 같을 때 a==b==c를 하면 type mismatch 오류가 떠서 a==b && b==c 로 작성했다. ② 두 수가 같을 때 a==b 또는 b==c 또는 a==c가 있다. 각각의 경우에 맞게 if-else if-else 문을 써주었다...

문제 잘못된 코드 알람 시계 문제처럼 분 단위가 시 단위로 바뀌는 시점에서 출력을 다르게 해야 한다. ① 현재 시각의 분(min)+요리 시간의 분(time) < 60 hour는 그대로, min은 min+time이다. ② 현재 시각의 분(min)+요리 시간의 분(time) < 60 hour가 1씩 증가하는... 근데 120분 증가하면 2, 180분 증가하면 3 이런 식이다. 일단 hour++;로 써봤다. min 역시 복잡해졌다. 예를 들어 17시 40분에 60분이 더해지면 18시 40분이다. 이 때 출력값의 분은 40+60=100 / 100-60=40분이 된 것이므로 이를 수식으로 표현하면 min = (min+time)-time 이다. 혼자 코딩은 여기까지 할 수 있었다. 정답 시와 분 두 가지를 생각하느..

문제 정답 드디어 머리를 써야 하는 문제가 나왔다. 처음에는 '시간 차이'에 꽂혀서 time difference calcutation을 구글링했다. 덕분에 SimpleDateFormat 클래스와 Date.getTime(); 메소드를 발견했지만 이 두 클래스는 풀이와 아무 관련이 없다^^ 손으로 직접 쓰는 편이 이해하기 수월했다. 이 문제의 분기점은 크게 보면 2가지, 파고들면 3가지이다. ① min 45인 경우 hour는 그대로, min은 min-45가 된다. * 여기서 hour--;는 1씩 감소한다는 증감 연산자(in..

응용 계층: 애플리케이션에 데이터 전송하기 책에서는 응용 계층을 하위 계층인 표현 계층과 세션 계층의 기능을 포괄한 것으로 지칭하고 있다. 배우는 입장에서 한 자라도 부담을 덜어준다면 오히려 좋아. 응용 계층은 사용자(클라이언트)의 요청을 통신 대상(서버)가 이해할 수 있는 메시지(데이터)로 변환하여 전송 계층으로 전달한다. 또 반대로 전송 계층으로부터 서버의 메시지를 전달받아 클라이언트에게 전달하기도 한다. 응용 계층에서는 크게 세 가지 애플리케이션과 이를 처리하는 프로토콜을 살펴본다. 첫째, 웹 사이트 접속과 HTTP이다. 둘째, 파일 전송과 FTP이다. 셋째, 이메일 송수신과 SMTP/POP3이다. 또한 네트워크에서 기기에 붙여진 이름을 기반으로 IP 주소를 알아내는 '이름 해석' 작업에 쓰이는 D..