전체 글
-
[백준] 7785번: 회사에 있는 사람코딩(Coding)/백준 문제풀이 2020. 12. 29. 10:26
회사에 있는 사람 문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경..
-
[백준] 10174번: 팰린드롬코딩(Coding)/백준 문제풀이 2020. 12. 29. 10:20
링크: www.acmicpc.net/problem/10174 팰린드롬 문제 팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 단어나 숫자들을 말한다. 일반적으로 대소문자를 구분하지 않지만, 공백은 구분한다. 다음은 팰린드롬의 예시이다. Anna Harrah Arora Nat tan 9998999 123 321 $&&
$ 모든 라인에 대해 팰린드롬인지 아닌지를 구분하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 n이 주어진다. 각 테스트 케이스는 한 줄의 텍스트로 이루어져있으며, 비어있는 줄은 없다. 출력 각 테스트 케이스에 대해 정답을 출력한다. 팰린드롬일 경우 "Yes"를 출력하고, 그렇지 않을 경우 "No"를 출력한다. 간단히 말해서 이 문제는 앞뒤로 읽었을때, 같은 글을 판단(대소.. -
[자료구조] Single Linked List코딩(Coding)/자료구조 2020. 12. 28. 12:05
Single Linked List Linked List는 많은 양의 자료이동이 필요할때 사용하는 자료구조이다. Linked List는 Node라는 단일된 객체들의 연결로 표현한다. 오늘 포스팅에서 소개할 Single Linked List는 이러한 연결이 한개로 순차적인 표현을 한다. Single Linked List 설계 단일 연결 리스트의 설계를 해보자 Node 설계 Node는 데이터가 담기는 핵심적인 요소이다. 일반적인 배열로 생각하면 [1,2,4]같이 있다면 "1", "2"같은 단일된 요소 해당 인덱스의 요소를 가리키는 것이다. 그렇다면 Node는 데이터를 저장해야하는 Data변수가 있어야 된다. 그리고 연결을 표현해야함으로 다음 Node로 가는 Pointer가 있어야겠다. 그림으로 표현하면 다음 ..
-
[백준] 1037번: 약수코딩(Coding)/백준 문제풀이 2020. 12. 28. 10:18
링크: www.acmicpc.net/problem/1037 약수 문제 양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다. 출력 첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다. 진짜 약수는 1과 자신을 제외한 나머지 약수들을 뜻한다. 접근을 어떻게 해야되나 고민을 해보았는데, 그냥 진짜약수를 입력으로 받아오면 가운데 숫자를 곱해주면 될거..
-
[백준] 17608번: 막대기코딩(Coding)/백준 문제풀이 2020. 12. 24. 10:37
막대기 문제 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다. N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려고 한다. 입력 첫 번째 줄에는 막대기의 개수를 나타내는 정수 N (2 ≤ N ≤ 100,000)이 주어지고 이어지는 N줄..
-
[백준] 8958번: OX퀴즈코딩(Coding)/백준 문제풀이 2020. 12. 24. 09:48
OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 해당 문제는 OX결과를 문자열로 받으면 해당 문자열을 읽어서 연속된 O는 점수가 늘어나게하고 X가 나오면 다시 0점을 주고 다시 1로 점수를 세게끔... 그냥 문제 그대로 알고리즘을 구현하면 되는 쉬운문제이다. 나는 그냥 combo라는 변수를 선언해서 그 값만큼 더해주고 combo += 1로 연속된 점수에대한 갱..
-
[자료구조] Stack과 Queue코딩(Coding)/자료구조 2020. 12. 23. 15:51
Stack과 Queue Stack 스택(Stack)은 기본적인 자료구조로 쌓아올린다는 개념으로 시작하며 접근방법은 언제나 목록의 끝에서만 일어난다. 위 그림처럼 스택은 데이터를 아래서부터 쌓아올리고 데이터들을 다시 불러올때는 가장 최근의 데이터가 호출된다. 이를 선입후출(LIFO - Last in First Out)이라고 한다. 해당 자료구조를 구현하기위해 정의해야할 메소드를 아래에 적어보겠다. push(data): 데이터를 저장할 때, 호출되는 메소드 pop(): 가장 위에있는 데이터를 반환하고 그 값을 삭제하는 메소드 getTop(): 가장 위에있는 데이터를 반환하는 메소드 isEmpty(): stack이 비어있는지를 확인하는 메소드 isFull(): stack이 꽉차있는지를 확인하는 메소드 prin..
-
[백준] 4673번: 셀프 넘버코딩(Coding)/백준 문제풀이 2020. 12. 23. 09:40
셀프 넘버 해당 문제는 에라토스테네스의 체를 통해 소수(Prime Number)를 구하는 알고리즘을 응용하면 풀 수 있다. 에라토스테네스의 체의 대한 설명은 아래 GIF를 통해 어느정도 이해 할 수 있을 것이다. 그리고 Java이긴 하지만 GitHub에도 올려놓았었다. github.com/JoSangYeon/Algorithm/tree/master/PrimeNumber JoSangYeon/Algorithm 알고리즘 공부. Contribute to JoSangYeon/Algorithm development by creating an account on GitHub. github.com 에라토스테네스의 체에 대해선 나중에 자세히 설명하는 글을 쓸 예정이지만 간단하게 정리하자면 다음과 같다. 소수는 1과 자기자..