[BOJ] 1100. 하얀 칸
https://www.acmicpc.net/problem/1100
문제
체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다.
출력
첫째 줄에 문제의 정답을 출력한다.
코드
👩💻 풀이과정
- 체스판 배열을 입력받아서 List에 한 줄씩 저장
i
로 한 줄씩 꺼내어 비교i
가 짝수이면 홀수 번째 줄 ->j
로 한 칸씩 비교- 홀수 번째 줄이면 홀수 번째 칸이 흰색
j
가 홀수일 때 그 칸이 F이면piece
+ 1
i
가 홀수이면 짝수 번째 줄 ->k
로 한 칸씩 비교- 짝수 번째 줄이면 짝수 번째 칸이 흰색
k
가 짝수일 때 그 칸이 F이면piece
+ 1
👀 주의할 점
- List의 종류
- ArrayList
- 동적 크기 배열, 객체가 인덱스로 관리
- 빈번한 객체 삭제와 삽입이 일어나는 경우엔 적절하지 않음
- 인덱스 검색이나 맨 마지막에 객체를 추가하는 경우 사용
- Vector
- ArryaList와 동일한 내부 구조
- 동기화된 메서드로 구성
- LinkedList
- 인접 참조를 링크해서 체인처럼 관리
- 특정 인덱스의 객체 삭제하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않음
- 빈번한 객체 삭제와 삽입이 일어나는 경우 좋은 성능 발휘
- ArrayList
- for문, if문 여러번 쓸 때 헷갈리지 않도록 주의…ㅎ
- String에서 특정 인덱스의 문자 뽑아낼 때
.charAt(index)