분류 전체보기 381

[프로그래머스] 2개 이하로 다른 비트 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 처음 이 문제에 접근했었던 방식은 주어지는 숫자(number)와 해당 숫자에 1씩 더한 숫자(number + 1)를 XOR 연산(다른 비트일 경우 1)해준 다음 이를 이진수 형태로 바꿔주어 1의 개수를 세주도록 했습니다. for (long number : numbers) { long target = number; while (true) { String xor = Long.toBinaryString(number ^ ++target); long count = xor.chars().filter..

Java의 Object 클래스가 제공하는 기능 분석

Object 클래스란? 객체지향 프로그래밍 언어인 자바에서 모든 코드는 반드시 클래스 안에서 존재하며, 이러한 클래스는 서로 관련된 속성과 기능 간의 그룹으로 묶이게 된다. 이때 Object 클래스는 모든 클래스들의 최상위 클래스로, 모든 클래스들은 Obejct 클래스를 상속받는다. 우리가 어떤 클래스를 작성할 때 별도로 Object 클래스를 상속하지 않아도 됐었던 이유는 컴파일 시 자바 컴파일러가 'extents Object'를 자동으로 추가해주기 때문이다. 참고로 Object가 아닌 다른 클래스를 상속받도록 명기해준 경우에는 해당 클래스가 이미 Object를 상속받기 때문에 중복해서 추가해주진 않는다. Object 클래스가 제공하는 여러가지 기능들 하위 클래스가 상위 클래스를 상속받으면 상위 클래스의..

Technology/Java 2022.08.26

[프로그래머스] 두 큐 합 같게 만들기 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 우선 주어지는 두 배열을 각각 큐로 변환해서 접근했습니다. int length = queue1.length; Queue q1 = new LinkedList(); Queue q2 = new LinkedList(); for (int i = 0; i < length; i++) { q1.add(queue1[i]); q2.add(queue2[i]); } 이후 두 큐의 합(sum1, sum2)을 구하고, 무한 반복문을 순회하면서 sum1과 sum2를 비교하면서 같아질 때까지 디큐 및 엔큐를 해주면서..

다큐멘터리 '알파고' 그리고 인공 지능에 대한 생각들

알파고 vs 이세돌 2016년 3월 9일 오후 경, 대학생 3학년이었던 나는 "마이크로 컨트롤러"라는 전공 필수 강의를 들으며 Atmega128라는 마이크로 컨트롤러 유닛의 이론을 배우고 있는 중이었다. 수업 중에 때마침 친구로부터 어떤 알파고라는 AI(인공 지능)가 우리나라 대표 프로 바둑 기사 이세돌과 바둑으로 한 판 붙는다는 얘기를 전해들었다. 당시에는 바둑에 대해서도 잘 몰랐지만 인공 지능이라는 개념에 대해서도 생소했다. 하지만 그럼에도 불구하고 어떻게 컴퓨터가 사람을, 그것도 이세돌이라는 자타가 공인하는 프로 바둑 기사를 이길 수 있겠나라는 생각이 우선적으로 들었던 것 같다. 당시 나에게 있어 게임에서의 인공 지능이라고 해봤자 끽해야 스타크래프트에서 컴퓨터를 상대하는 그런 것에 불과했다. 그렇게..

2022년 8월 3주차(8/15 ~ 8/19) Weekly I Learned "뚜벅뚜벅 걸어가기"

지난 한 주 되돌아보기 한 주 한 주가 시간이 정말 빠르게 흐르는 것 같다. 특히, 마스터즈 코스를 수료한 이후로는 뭔가 이전 보다 더욱 시간이 빨리 흘러가는듯한 느낌이다. 이렇게 한 주 한 주 시간이 흘러가면서 "내가 지금 제대로 하고 있는 건가?"라는 의문이 들 때도 종종 있었다. 또한 지금 당장 취업과 밀접한 프로젝트 등의 학습을 하지 않고 있다보니 조급함이 느껴지곤 했다. 하지만 일단은 처음 가졌었던 계획대로 당분간은 컴퓨터 과학, 자바, 자료구조, 알고리즘 등 기초 학습에 중점을 두고자 한다. 무엇보다 이러한 기초를 학습하면서 하나하나 배워가고 나의 부족한 점들을 채워가는 재미가 쏠쏠하다. 아울러, 장기적으로 개발함에 있어 이러한 지식들이 뿌리가 되어줄 것이라는 생각이 든다. 자료구조, 자바로 ..