본문 바로가기

분류 전체보기

(객체지향 기초) Java로 계좌 관리 프로그램 만들기(2) 발생한 문제와 해결과정 Java와 객체지향 초보다 보니 기초적인 내용임에도 작업 과정에서 문제가 많이 발생했는데, 해결 과정에서 시간이 너무 오래 걸리게 되었다. 그래서 일단 그냥 넘어갔다 실력이 쌓이고 다시 풀어 보려고 했으나 생각을 바꿔 끝까지 완성하게 되었다. 넘어가면 당장의 시간은 덜 쓰겠지만, 확실히 학습하지 못한 개념은 이후의 학습 과정에 장애 요소가 되어 결과적으로 시간을 더 소모하게 될 수 있다. 다 적으면 끝도 없겠지만, 복습 과정에서 활용할 수 있도록 실행 과정에서 발생했던 문제 위주로 간략하게 적어 보겠다. nextInt() 메소드를 사용했을 때 입력창이 skip되는 문제 위와 같이 계좌번호를 입력하지 못하고 계좌 수를 입력하는 창이 바로 나오게 되는데, 검색을 통해 이게 nextIn.. 더보기
(객체지향 기초) Java로 계좌 관리 프로그램 만들기(1) 목표와 전체 소스 코드 만들고자 하는 프로그램 다음은 키보드로부터 계좌 정보를 입력받아 계좌를 관리하는 프로그램입니다. 계좌는 Account 객체로 생성되고 BankApplication에서 길이 100인 Account[ ] 배열로 관리됩니다. 실행 결과를 보고, Account와 BankApplication 클래스를 작성해보세요(키보드로 입력받을 때는 Scanner 의 nextLine ( ) 메소드를 사용). 객체는 공부했다. 그런데 Account[] 배열로 만들라 하니 전혀 감이 잡히지 않았다. 이것 때문에 고민하고 설계하는 데 투입한 시간이 절대적으로 많다. 그런 거 예제에서도 안 만들어 봤는데 바로 만들어 보라고 한다... 소스 코드 1. Account 클래스 package ch_06.practice.. 더보기
Java 코딩테스트 연습 11일차 (프로그래머스 스쿨 Lv.0, 1146점) OX 퀴즈 덧셈, 뺄셈 연산식 배열의 답이 맞으면 "O", 틀리면 "X"를 담은 배열을 return하는 문제다. 어제 다른 풀이에서 봤던 " "를 기준으로 나누는 방법이 제일 쉬울 것 같다. for 반복문 안에서 split 메소드를 이용해 quiz 배열의 각 원소들을 공백 기준으로 나눴다. split[0] 위치에 있는 첫 번째 수와 split[2]의 두 번째 수, 결과값인 split[4]를 int형으로 변환한 값을 각각 firstNum, secondNum, result 변수에 대입했다. result는 앞에 -가 붙을 수 있으므로 -가 있을 때와 없을 때로 나눠 계산한다. answer의 결과값 대입에는 삼항 연산자를 써 봤는데, 이것 저것 오류가 많이 났다. 괄호가 문제인 것 같은데 도통 이유를 모르겠다... 더보기
Java 코딩테스트 연습 10일차 (프로그래머스 스쿨 Lv.0, 1130점) 오늘과 내일, 모레는 lv.0 문제를 정답률 낮은 순으로 3문제씩 풀고, 글피부터 프로그래머스 코딩 테스트 문제 풀이 전략 : 자바 편에 나오는 문제를 풀기 시작할 예정이다. 원래 오늘과 내일 5문제씩 풀 예정이었지만 예상보다도 시간이 너무 오래 걸려서 하루 연장했다. 마지막 문제는 정답률이 29%라 어차피 못 풀 것 같기에, 마지막에 시도해 보고 실패하면 나중에 다시 풀어 보기로 했다. 마음 같아서는 lv.0 문제를 다 풀어보고 싶지만 Java 공부를 메인으로 하며 병행하다 보니 너무 오래 걸릴 것 같다. 앞으로 풀 것은 어려운 문제들이라 하루에 푸는 문제 수는 더 적어지겠지만, 얻는 것은 더 많을 것이다. 4월 5일부터 프로그래머스 스쿨에서 진행하는 코딩테스트 실력 UP 패키지 수업을 등록했는데, 수.. 더보기
Java 코딩테스트 연습 9일차 (프로그래머스 스쿨 Lv.0, 1100점) 편지 쉬운 문제다. 문자열의 길이에 *2만 하면 될 것 같다. 자릿수 더하기 조금 까다로운 문제다. 문자열로 변환해 charAt 메소드로 추출한 후, 다시 정수형으로 변환해 answer에 더하는 방식으로 풀어 봤다. 안 된다. 이것이 자바다 교재에 char 타입은 변환법이 없길래 일단 String처럼 변환시켜 봤는데 역시 안 되나 보다. 그래서 방법을 바꿔 지수로 풀어 봤다. 10의 지수 승으로 나눠서 가장 큰 자릿수를 answer의 더한 뒤, 다시 10의 지수 승으로 곱해 n에서 빼 준다. 예를 들어 n이 34,567이라면 10,000으로 나눠 나온 3을 answer에 더한 뒤, 다시 10,000을 곱해 나온 30,000을 34,567에서 빼 주는 방식이다. 4,567이 남으면 같은 방법으로 1의 자리.. 더보기
Java 코딩테스트 연습 8일차 (프로그래머스 스쿨 Lv.0, 1095점) 아이스 아메리카노 내가 좋아하는 아이스 아메리카노(나도 얼죽아) 문제다. 난이도는 허무할 정도로 쉽다. 몫이 첫 번째 원소, 나머지가 두 번째 원소가 되도록 하면 된다. 특정 문자 제거하기 그동안 String 문제를 안 풀었더니 method도 생각 안 나고 어렵다. 책에서 replace method를 찾아서 풀었다. String 복습을 자주 해야겠다. 문자 반복 출력하기 엄청난 난관에 부딪혔다. String 문제를 거의 안 풀어 봤는데, 문자를 반복하는 방법 따위 알 수가 없다. 적어도 내가 아는 방법 중에는 없다고 생각했다. 문자열을 n으로 곱해 봤다. 역시 안 된다. 이 와중에 또 조건식에 length method가 아닌 field를 적은 모습이다. 배열 문제만 계속 풀었다 보니 자꾸 틀린다. 허무하.. 더보기
Java 코딩테스트 연습 7일차 (프로그래머스 스쿨 Lv.0, 1088점) 오늘도 정답률 높은 순으로 풀었다. 미리 순서를 보고 시작했는데, 풀고 올 때마다 정답률 높은 문제가 실시간으로 바뀌어 정신이 없다. 그 정도로 동시에 풀이를 진행하는 사람이 많은가 보다. 머쓱이보다 키 큰 사람 쉬운 문제다. for 반복문에서 height보다 큰 array의 원소가 나올 때마다 answer을 1씩 올려주면 될 것 같다. 제대로 확인 안 하고 꼭 한 번씩 틀려서 스트레스를 많이 받는다. if 조건식에 array[i]가 들어가야 하는데 i를 넣어 버렸다. 짝수 홀수 개수 이것도 쉬운 문제다. 짝수와 홀수가 나올 때마다 answer[0]과 answer[1]의 원소를 하나씩 늘려 주면 된다. 또 식을 제대로 안 썼다. 바로 제출을 안 해도 되니 꼼꼼하게 안 쓰고 코드 실행부터 눌러보는 버릇을 .. 더보기
내가 백엔드 개발자가 되려는 이유 내가 백엔드 개발자로의 커리어를 지향하게 된 이유는 전망이 좋아서, 구인 수요가 많아서 등의 직업 현황에 의존적인 요인과는 전혀 관련이 없다. 특정 직군이 유망하다는 소문이 돌고 돌아 내 귀에까지 전달되었다면, 그 즉시 직업훈련을 시작해 후발주자로 뛰어 들어봤자 안타깝게도 해당 직군은 더 이상 블루오션이 아닐 확률이 높다. 그리고 내가 그 정보를 인지한 시기는 정확한 날짜를 알 수 없지만 최소 2년 전이다. 다행스러운 부분은 최근의 취업 한파 영향까지 겹쳤음에도 불구하고, 아직까지는 적당한 수준의 개발자 수요가 남아 있는 것 같다는 점이다. 더 이상 예전의 행복한 구직 활동을 누릴 수 있는 직업은 아니지만, 나의 선택에 영향을 미친 사항은 아니다. 가치관(사회와 사람들에게 보탬이 되는 직업) 세상에는 사.. 더보기